NVME磁盘

1. 识别新磁盘

首先,我们需要确认系统已经识别到了新的 NVMe 硬件。

lsblk

或者使用更详细的命令:

fdisk -l

2. 创建分区

我们将使用 fdiskgdisk 进行分区。如果磁盘大于 2TB,建议使用 gdisk。这里以常用的 fdisk 为例:

# 替换为你的实际磁盘名称
sudo fdisk /dev/nvme0n1

在交互界面中依次输入:

  1. n:创建新分区。
  2. p:选择主分区(Primary)。
  3. 1:分区号为 1。
  4. 回车:选择起始扇区(默认即可)。
  5. 回车:选择结束扇区(使用全部空间)。
  6. w:保存更改并退出。

3. 创建文件系统(格式化)

CentOS 8 默认推荐使用 XFS 文件系统,当然你也可以选择 EXT4

sudo mkfs.xfs /dev/nvme0n1p1
sudo mkfs.ext4 /dev/nvme0n1p1
特性 XFS (CentOS 7/8 默认) EXT4 (传统 Linux 默认)
最大文件限制 极其庞大 (8 EB) 16 TB
最大卷限制 极其庞大 (16 EB) 1 EB
设计架构 64位,专为并行 I/O 设计 48位,从 EXT3 演进而来
碎片处理 优秀的在线延迟分配 容易产生碎片,需定期整理
分区缩减 不支持(只能扩容) 支持(可以无损缩小)
恢复工具 xfs_repair 速度极快 fsck 扫描大容量磁盘很慢

4. 挂载分区

我们需要创建一个目录作为挂载点,并将磁盘挂载上去。

# 创建挂载点(例如叫 data)
sudo mkdir -p /mnt/data

# 手动挂载测试
sudo mount /dev/nvme0n1p1 /mnt/data

# 检查是否成功
df -hT | grep nvme

5. 配置开机自动挂载

为了防止重启后挂载失效,必须将其写入 /etc/fstab推荐使用 UUID 挂载,因为设备名称(如 nvme0n1)在某些情况下可能会变。

  1. 获取分区的 UUID:
blkid /dev/nvme0n1p1

复制输出中的 UUID="xxxx-xxxx-xxxx" 部分。
2. 编辑 fstab 文件:

sudo vi /etc/fstab
  1. 在文件末尾添加一行:
UUID=你的UUID  /mnt/data  xfs  defaults  0 0

  1. 验证配置是否正确:
sudo umount /mnt/data
sudo mount -a

如果没有报错,说明配置成功。


HDD及SSD磁盘

1. 识别新磁盘

使用 lsblk 命令查看系统识别到的磁盘列表。

lsblk

2. 分区 (fdisk 或 gdisk)

如果磁盘容量 小于 2TB,使用 fdisk;如果 大于 2TB,必须使用 gdisk(支持 GPT 分区表)。

以 fdisk 为例:

sudo fdisk /dev/sdb  # 假设新磁盘是 sdb

在交互界面依次输入:


3. 创建文件系统 (格式化)

CentOS 8 推荐使用 XFS,它在大文件处理和性能上表现优异。

# 格式化为 XFS
sudo mkfs.xfs /dev/sdb1

# 或者格式化为 EXT4
# sudo mkfs.ext4 /dev/sdb1

4. 挂载磁盘

# 创建挂载点
sudo mkdir -p /data

# 临时挂载
sudo mount /dev/sdb1 /data

5. 设置永久挂载 (防止重启失效)

普通磁盘同样建议使用 UUID 挂载,因为如果主板调换了 SATA 线接口,sdb 可能会变成 sdc,但 UUID 永远不变。

  1. 查询 UUID:
blkid /dev/sdb1
  1. 修改 /etc/fstab:
sudo vi /etc/fstab

在文件末尾添加一行:

UUID=你的UUID值  /data  xfs  defaults  0 0

  1. 测试挂载:
sudo mount -a

(无报错则表示下次重启会自动挂载)。


普通磁盘 vs NVMe 磁盘的主要区别

特性 普通磁盘 (SATA/SAS) NVMe 磁盘
设备名 /dev/sdX (如 sdb) /dev/nvmeXnY (如 nvme0n1)
分区名 /dev/sdb1 /dev/nvme0n1p1 (多了一个 p)
接口物理速度 最高约 600MB/s (SATA3) 3500MB/s - 7000MB/s+ (PCIe)
热插拔 常用在服务器热插拔支架 较少在运行中直接拔插