需求描述
有12块磁盘(10块1.7TB + 2块2.9TB NVMe),需要建两个文件系统/app和/data
需求分析
1、/app (10块1.7TB磁盘):把10块磁盘的空间合并成一个约17TB的逻辑卷,并且最大的好处是后期扩容非常灵活。当空间不足时,你可以随时加入新硬盘进行在线扩展。
2、/data (2块2.9TB NVMe磁盘):这两块盘非常适合追求极致性能的场景。你既可以用它们组建一个RAID 0阵列(容量加倍,性能提升),也可以将它们作为两个独立的、高性能的挂载点使用。
详细步骤
准备工作:识别磁盘
用lsblk命令确认所有磁盘的设备名称。
lsblk
/app 使用的10块盘为:/dev/sdb, /dev/sdc ... /dev/sdk
/data 使用的2块NVMe盘为:/dev/nvme0n1, /dev/nvme1n1
一、创建 /app 文件系统 (10块 1.7TB 硬盘)
使用LVM将这10块硬盘合并为一个逻辑卷。
1. 安装LVM工具
如果系统提示-bash: pvcreate: command not found,则需要安装工具。
# CentOS / RHEL / openEuler
sudo yum install -y lvm2
2. 创建物理卷 (PV)
将10块硬盘初始化为LVM的物理卷。
sudo pvcreate /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf \
/dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk
可以用sudo pvs快速检查是否创建成功。
3. 创建卷组 (VG)
创建一个名为vg_app的卷组,将上面所有物理卷加入其中。
sudo vgcreate vg_app /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf \
/dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk
4. 创建逻辑卷 (LV)
在vg_app卷组上创建一个逻辑卷,使用全部空闲空间。
sudo lvcreate -l 100%FREE -n lv_app vg_app
-l 100%FREE:使用卷组中的所有剩余空间。
-n lv_app:指定逻辑卷名称为 lv_app。
创建完成后,设备路径为 /dev/vg_app/lv_app。
5. 格式化为 XFS 文件系统
sudo mkfs.xfs /dev/vg_app/lv_app
如果你的10块硬盘是硬件RAID或SAN存储,可以添加-d su=XXX,sw=YYY参数进行条带化优化以提升性能。
6. 创建挂载点并挂载
sudo mkdir -p /app
sudo mount /dev/vg_app/lv_app /app
7. 设置开机自动挂载
首先获取逻辑卷的UUID。
sudo blkid /dev/vg_app/lv_app
复制输出的UUID,然后编辑/etc/fstab文件。
sudo vim /etc/fstab
添加以下内容(将你的UUID替换为刚复制的值):
UUID=UUID /app xfs defaults 0 0
执行sudo mount -a验证配置是否正确,无报错即成功。
二、 创建 /data 文件系统 (2块 2.9TB NVMe 磁盘)
NVMe磁盘速度极快,可根据你的需求选择两种配置方案。
方案A:合并为一个大卷(类RAID 0)
此方案将两块NVMe硬盘容量合并,在/data下看到一个约5.8TB的卷,性能最高(读写可同时利用两盘),但没有冗余,任一块盘损坏会导致数据全部丢失。
创建LVM卷:
sudo pvcreate /dev/nvme0n1 /dev/nvme1n1
sudo vgcreate vg_data /dev/nvme0n1 /dev/nvme1n1
sudo lvcreate -l 100%FREE -n lv_data vg_data
格式化与挂载:
sudo mkfs.xfs /dev/vg_data/lv_data
sudo mkdir -p /data
sudo mount /dev/vg_data/lv_data /data
开机自动挂载:参照上文步骤,将/dev/vg_data/lv_data的UUID写入/etc/fstab。
方案B:作为两个独立的高性能目录
此方案不合并磁盘,而是将两块NVMe盘分别挂载到/data下的两个子目录,或一个给/data、另一个做它用。优点是独立性强,一块盘故障不影响另一块。
sudo mkfs.xfs /dev/nvme0n1
sudo mkfs.xfs /dev/nvme1n1
创建挂载点并挂载(例如挂载到/data1和/data2):
sudo mkdir -p /data1 /data2
sudo mount /dev/nvme0n1 /data1
sudo mount /dev/nvme1n1 /data2
开机自动挂载:将两块盘的UUID分别写入/etc/fstab,指定不同的挂载点。
三、 性能优化建议
调整挂载参数:对于XFS文件系统,建议在/etc/fstab中加入noatime参数。这能减少对文件访问时间的记录,显著提升高性能磁盘(尤其是NVMe)的读写效率。
# /etc/fstab 示例
UUID=xxx /app xfs defaults,noatime 0 0
UUID=yyy /data xfs defaults,noatime 0 0
关于分区:上述方案直接对整个磁盘(如/dev/sdb)进行操作,这通常没有问题。但如果你的磁盘大于2TB或使用GPT分区表,可使用parted或gdisk创建分区后再进行上述LVM操作。
完成后,使用df -hT和lsblk命令确认所有挂载点都已正确就位且空间大小符合预期。