Skip to content

Commit c798510

Browse files
committed
Add description
1 parent 453b92b commit c798510

File tree

1 file changed

+87
-3
lines changed

1 file changed

+87
-3
lines changed

docs/zh/installation/linux/index.md

Lines changed: 87 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ description: "使用 Linux 操作系统安装 RustFS 的快速指导"
55

66
# Linux 安装 RustFS
77

8-
<a id="mode"></a>
98

109
## 一、安装前必读
1110

@@ -35,9 +34,7 @@ description: "使用 Linux 操作系统安装 RustFS 的快速指导"
3534

3635
7. 磁盘规划;
3736

38-
8. 容量规划;
3937

40-
9. 数据分层规划。
4138

4239
### 2.1. 操作系统版本
4340

@@ -116,6 +113,93 @@ timedatectl status
116113
如果状态为“synchronized”,则表示时间同步正常。
117114

118115

116+
### 2.6 容量和EC规划
117+
118+
在规划对象存储容量的时候,我们建议您根据:
119+
120+
- 初始数据量: 您计划一次性迁移或存储多少数据?(例如:500 TB)
121+
- 数据增长量:每天/每周/每月的数据增长容量;
122+
- 规划周期: 您希望这次的硬件规划能支撑多久?(建议:3年)
123+
- 考虑您公司的硬件迭代和更新周期。
124+
125+
EC(纠删码)规划如下:
126+
127+
| 场景 | 推荐校验级别 | 说明 |
128+
| - | - | - |
129+
| 标准生产环境 | EC:4 | 能够容忍最多4块磁盘(或节点)故障,在可靠性和存储效率之间取得了很好的平衡。|
130+
| 高可用性要求 | EC:4 - 8 | 或更高 适用于对数据可用性要求极高的场景,但会牺牲更多的存储空间。|
131+
| 开发测试环境 | EC:2| 提供基本的冗余保护,适用于非关键业务。|
132+
133+
134+
135+
136+
### 2.7 磁盘规划
137+
138+
由于NFS在高IO情况下,会产生幻写和锁的问题,在使用RustFS时 **禁止使用NFS** 作为RustFS的底层存储介质。 官方强烈建议使用**JBOD(Just a Bunch of Disks)**模式,即简单磁盘捆绑。这意味着将物理磁盘直接、独立地暴露给操作系统,由RustFS软件层面负责数据冗余和保护。
139+
140+
141+
原因如下:
142+
- **性能更优:** RustFS 的纠删码(Erasure Coding)引擎经过高度优化,能够直接并发读写多块磁盘,实现比硬件RAID控制器更高的吞吐量。硬件RAID会成为性能瓶颈。
143+
- **成本更低:** 无需昂贵的RAID卡,降低了硬件采购成本。
144+
- **管理更简单:** 由RustFS统一管理磁盘,简化了存储层的运维。
145+
- **故障恢复更快:** RustFS(healing)过程比传统的RAID重建(rebuild)速度更快,且对集群性能影响更小。
146+
147+
148+
官方推荐在磁盘上使用NVMe SSD作为您的存储介质,保障更高的性能和吞吐能力。
149+
150+
151+
### 2.8 文件系统选择
152+
153+
RustFS官方在磁盘文件系统格式上,RustFS官方强烈推荐在所有用于存储的磁盘上使用 XFS 文件系统。MinIO的开发和测试都基于XFS,能够确保最佳的性能和稳定性。不建议使用ext4、BTRFS或ZFS等其他文件系统,因为它们可能会导致性能下降或出现不可预知的问题。
154+
155+
RustFS是一个为高并发、高性能设计的对象存储系统。当客户端上传或下载大对象时,MinIO会将其分片,并以并行的方式同时读写到纠删集(Erasure Set)中的多块磁盘上。
156+
157+
XFS的优势:XFS(eXtents File System)从设计之初就是为了高性能和可扩展性而生。它在大文件处理和高并发I/O场景下表现极其出色。其内部的日志和数据结构(如B+树)能够高效地处理大量的并行读写请求,这与MinIO的工作模式完美契合。相比之下,虽然ext4等文件系统近年来性能有很大提升,但在面对极端并发负载时,XFS通常能提供更稳定、更优越的吞-吐量。
158+
159+
对象存储通常需要处理海量的文件和巨大的单个文件(TB级别), XFS是一个64位的文件系统,能够支持极大的文件大小(高达8 EB)和文件系统规模。它的元数据管理非常高效,即使在单个目录下存放数百万个文件,其性能下降也远小于其他文件系统。这对于MinIO将每个对象(或对象的某个版本)作为一个独立文件存储在后端文件系统上的方式至关重要。
160+
161+
RustFS 在写入新对象或对象的版本时,为了保证写入性能和减少文件碎片,会进行空间预留, XFS提供了名为fallocate的高效API,允许应用程序预留一块连续的磁盘空间。MinIO利用这个特性,在写入文件之前就为其分配好所需的空间,避免了写入过程中因动态扩容和元数据更新带来的性能开销,同时也最大程度地减少了文件碎片的产生,保证了后续读取的性能。
162+
163+
为了更好的发现磁盘,在xfs文件系统格式化时我们建议使用 **Label** 标签,对磁盘进行打标。
164+
165+
首先,需要查看磁盘系统的情况:
166+
167+
~~~
168+
sudo lsblk
169+
170+
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
171+
sda 8:0 0 465.7G 0 disk
172+
├─sda1 8:1 0 512M 0 part /boot/efi
173+
└─sda2 8:2 0 465.2G 0 part /
174+
nvme0n1 8:16 0 3.7T 0 disk <-- if this is our format new disk
175+
nvme1n1 8:32 0 3.7T 0 disk <-- if this is our format new disk
176+
nvme2n1 8:48 0 3.7T 0 disk
177+
~~~
178+
179+
180+
具体格式化命令如下:
181+
182+
~~~
183+
sudo mkfs.xfs -i size=512 -n ftype=1 -L RUSTFS0 /dev/sdb
184+
~~~
185+
186+
我们可以在格式化时加入一些推荐选项来优化性能:
187+
- -L <label>: 为文件系统设置一个标签(label),方便后续识别和挂载。
188+
- -i size=512: RustFS官方推荐将inode大小设置为512字节,这对于存储大量小对象(元数据)的场景有性能优势。
189+
- -n ftype=1: 开启ftype功能。这允许文件系统在目录结构中记录文件类型,可以提高类似readdir和unlink操作的性能,对RustFS非常有利。
190+
191+
挂载:
192+
~~~
193+
# write new line
194+
vim /etc/fstab
195+
LABEL=RUSTFS0 /data/rustfs0 xfs defaults,noatime,nodiratime 0 0
196+
197+
#save & exit
198+
199+
# mount disk
200+
sudo mount -a
201+
~~~
202+
119203

120204

121205
## 三、配置用户名

0 commit comments

Comments
 (0)