生产环境部署建议
部署环境要求
| 服务 | 规格 | 测试环境 | 生产环境 |
|---|---|---|---|
| udbto-master | CPU | >=4C | >=8C |
| 内存 | >=4G | >=16G | |
| 操作系统 | Centos 7 或 Kylin 10 | Centos 7 或 Kylin 10 | |
| 硬件平台 | X86 64位 或 ARM 64位 | X86 64位 或 ARM 64位 | |
| 数量 | 3 | 3 | |
| udbto-datanode | CPU | >=4C | >=4C |
| 内存 | >=4G | >=8G | |
| 操作系统 | Centos 7 或 Kylin 10 | Centos 7 或 Kylin 10 | |
| 硬件平台 | X86 64位 或 ARM 64位 | X86 64位 或 ARM 64位 | |
| 硬盘容量 | >=1TB | >=2TB | |
| 硬盘类型 | sata或ssd | sata或ssd | |
| 文件系统 | 依赖内核的Punch Hole功能,xfs >=2.6.28 或 etx4 >=3.0 | 依赖内核的Punch Hole功能,xfs >=2.6.28 或 etx4 >=3.0 | |
| 数量 | >=3 | 3-1000 | |
| udbto-metanode | CPU | >=4C | >=8C |
| 内存 | >=8G | >=16G | |
| 操作系统 | Centos 7 或 Kylin 10 | Centos 7 或 Kylin 10 | |
| 硬件平台 | X86 64位 或 ARM 64位 | X86 64位 或 ARM 64位 | |
| 数量 | >=3 | 3-1000 |
容量规划
用户需要预估在未来相当长的一段时间内,最高预期文件数量和存储容量。
其次还要对目前拥有的机器资源有清晰地了解。知道每台机器的内存大小、CPU核心数、磁盘容量。
如果您对以上数据了解清楚了,可以通过给出的经验参考值来看看自己的当前环境属于哪一种规模,能承载怎样的文件体量,或者需要针对当前文件体量需求应该准备多少资源,以防止频繁扩充机器资源。
| 文件总数量 | 文件总储量 | 集群总内存 | 集群总磁盘空间 |
|---|---|---|---|
| 10亿 | 10PB | 2048 GB | 10PB |
提示:大文件占比越高,MetaNode 压力会越大。
为了加快元数据读取速度,元数据都放在内存中,而DataNode数据主要占用磁盘资源,如果希望最大化利用节点资源,可以采用DataNode和MetaNode在同一节点混合部署的方式。大文件占比越高,MetaNode压力会越大。
当然,如果目前的资源足够使用,不需要一次性满足容量增长需求。那么可以及时关注MetaNode/ DataNode的容量预警信息。
当内存或者磁盘即将使用完时,动态增加MetaNode/DataNode进行容量的调整。也就是说,如果发现磁盘空间不够了,可以增加磁盘或者增加DataNode,如果发现全部MetaNode内存过满,可以增加MetaNode来缓解内存压力。
多机房部署
如果希望集群支持机房容错性,可以部署跨机房的 UDBTO 集群。
同时需要注意以下几点:
由于机房之间的通信延迟高于单机房,所以如果对于高可用的要求大于低延迟,可以选择跨机房部署方案。
如果对性能要求更高,则建议单机房部署集群。
配置方案:在DataNode/MetaNode配置文件中修改zoneName参数,指定为所在机房名称,然后启动DataNode/MetaNode进程,则该机房会随着DataNode/MetaNode的注册而被Master存储并记录。
创建单机房volume:
udbto-cli volume create {name} --zone-name={zone}
为了防止单机房volume初始化失败,请保证单个机房的DataNode/MetaNode不少于3。
创建跨机房volume:
udbto-cli volume create {name} --cross-zone=true