Skip to content

Commit 235339f

Browse files
committed
rustfs expand
1 parent b8da58d commit 235339f

File tree

1 file changed

+128
-2
lines changed

1 file changed

+128
-2
lines changed
Lines changed: 128 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,134 @@
11
---
22
title: "可用性和扩展性说明"
3-
description: "RustFS是一款简单、高效、分布式的对象存储。它100%兼容S3,使用Apache2 许可证发行的开源软件"
3+
description: "本文将详细说明RustFS扩容相关的技术和说明"
44
---
55

6-
> 即将发布,文档疯狂更新中....
76

7+
> 在扩容请仔细阅读: [《Linux安装和部署RustFS》](https://rustfs.com/docs/install/linux/)
8+
9+
10+
## 扩容方案概述
11+
RustFS支持通过新增存储池(Server Pool)的方式实现横向扩容。每个新增的存储池必须满足:
12+
1. 存储池内节点需使用**连续主机名**(如node5-node8)
13+
2. 单个存储池内必须使用**相同规格**的磁盘(类型/容量/数量)
14+
3. 新增存储池需与现有集群保持**时间同步****网络互通**
15+
16+
![RustFS构图](https://rustfs.com/images/s-2/s2-1.png)
17+
18+
---
19+
20+
## 一、扩容前准备
21+
22+
### 1.1 硬件规划要求
23+
| 项目 | 最低要求 | 推荐生产配置 |
24+
|---------------|---------------------------|---------------------------|
25+
| 节点数量 | 4节点/存储池 | 4 -8 节点/存储池 |
26+
| 单节点内存 | 128GB | 128GB |
27+
| 磁盘类型 | SSD | NVMe SSD |
28+
| 单磁盘容量 | ≥1TB | ≥4TB |
29+
| 网络带宽 | 10Gbps | 25Gbps |
30+
31+
### 1.2 系统环境检查
32+
```bash
33+
# 检查主机名连续性(新节点示例)
34+
cat /etc/hosts
35+
192.168.10.5 node5
36+
192.168.10.6 node6
37+
192.168.10.7 node7
38+
192.168.10.8 node8
39+
40+
# 验证时间同步状态
41+
timedatectl status | grep synchronized
42+
43+
# 检查防火墙规则(所有节点需开放7000/7001端口)
44+
firewall-cmd --list-ports | grep 7000
45+
```
46+
47+
---
48+
49+
## 二、扩容实施步骤
50+
51+
### 2.1 新节点基础配置
52+
```bash
53+
# 创建专用用户(所有新节点执行)
54+
groupadd rustfs-user
55+
useradd -M -r -g rustfs-user rustfs-user
56+
57+
# 创建存储目录(以8磁盘为例)
58+
mkdir -p /data/rustfs{0..7}
59+
chown -R rustfs-user:rustfs-user /data/rustfs*
60+
```
61+
62+
### 2.2 安装RustFS服务
63+
```bash
64+
# 下载最新二进制包(版本号需与现有集群一致)
65+
wget https://dl.rustfs.com/rustfs/v2.3.0/rustfs -O /usr/local/bin/rustfs
66+
chmod +x /usr/local/bin/rustfs
67+
68+
# 创建配置文件(/etc/default/rustfs)
69+
cat <<EOF > /etc/default/rustfs
70+
RUSTFS_ROOT_USER=admin
71+
RUSTFS_ROOT_PASSWORD=YourSecurePassword
72+
RUSTFS_VOLUMES="/data/rustfs{0...7}"
73+
RUSTFS_ADDRESS=":7000"
74+
RUSTFS_CONSOLE_ADDRESS=":7001"
75+
EOF
76+
```
77+
78+
### 2.3 集群扩容操作
79+
```bash
80+
# 在所有现有节点更新配置(添加新存储池)
81+
sed -i '/RUSTFS_VOLUMES/s|"$| http://node{5...8}:7000/data/rustfs{0...7}"|' /etc/default/rustfs
82+
83+
# 全局服务重启(所有节点同时执行)
84+
systemctl restart rustfs.service
85+
```
86+
87+
---
88+
89+
## 三、扩容后验证
90+
91+
### 3.1 集群状态检查
92+
```bash
93+
# 检查节点加入状态
94+
curl -s http://node1:7001/cluster/nodes | jq .poolMembers
95+
96+
# 验证存储池分布
97+
rc admin info cluster
98+
```
99+
100+
### 3.2 数据均衡验证
101+
```bash
102+
# 查看数据分布比例(应接近各存储池容量占比)
103+
watch -n 5 "rustfs-admin metrics | grep 'PoolUsagePercent'"
104+
```
105+
106+
---
107+
108+
## 四、注意事项
109+
110+
1. **滚动重启禁止**:必须同时重启所有节点,避免出现数据不一致
111+
2. **容量规划建议**:当存储使用率达到70%前应规划下次扩容
112+
3. **性能调优建议**
113+
```bash
114+
# 调整内核参数(所有节点)
115+
echo "vm.swappiness=10" >> /etc/sysctl.conf
116+
echo "net.core.somaxconn=32768" >> /etc/sysctl.conf
117+
sysctl -p
118+
```
119+
120+
---
121+
122+
## 五、故障排查指引
123+
124+
| 现象 | 检查点 | 修复命令 |
125+
|---------------------------|---------------------------------|-------------------------------|
126+
| 新节点无法加入集群 | 检查7000端口连通性 | `telnet node5 7000` |
127+
| 数据分布不均衡 | 检查存储池容量配置 | `rustfs-admin rebalance start`|
128+
| 控制台显示节点状态异常 | 验证时间同步状态 | `chronyc sources` |
129+
130+
131+
132+
133+
> 提示:本文档基于RustFS最新版编写,扩容操作前请务必进行全量数据备份。生产环境建议联系RustFS技术支持工程师进行方案评审。
8134

0 commit comments

Comments
 (0)