Cơ sở kiến thức

挂载额外的 NVMe 卷并挂载它

找到新的块设备,选择文件系统,挂载它以便磁盘缺失不会阻止引导,并在以后无需停机即可增长。

设备在没有重启的情况下出现

额外的 NVMe 是按每五百 GB 销售的附加组件,并且是热附加的。在订单结算后的几秒钟内,该卷会作为一个新的块设备出现。不会重启任何东西。

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT

根磁盘是 vda;新的磁盘占用下一个字母。如果它没有出现,给 udev 一点时间,然后重新查看:

udevadm settle
ls /sys/class/block

跳过分区表

在虚拟磁盘上创建分区不会带来任何好处,并且每次卷扩展时都会增加一个步骤。将文件系统直接放在设备上:

mkfs.ext4 -L data /dev/vdb

或者,对于由多个线程同时写入的大文件:

mkfs.xfs -L data /dev/vdb

ext4 可以离线缩减,XFS 永远不能缩减。XFS 在并行元数据方面更快,而 ext4 对其他方面更宽容。对大多数人来说,这就是整个决定。

挂载它,以便缺失的卷无法阻止启动

使用标签。设备顺序在重建时无法保证,今天的 vdb 明天可能变成 vdc

mkdir -p /srv/data
echo "LABEL=data /srv/data ext4 defaults,noatime,nofail,x-systemd.device-timeout=10s 0 2" >> /etc/fstab
systemctl daemon-reload
mount -a
findmnt /srv/data

nofail 和设备超时是那行的关键部分。没有它们,在卷附加之前启动的实例会停留在紧急 shell 中等待磁盘,而你会比计划更早阅读控制台文章。

定时执行 Trim,而不是每次删除时执行

不要添加 discard 挂载选项。持续丢弃(continuous discard)会在每次 unlink 时发出 trim,而在繁忙的文件系统上,其成本高于收益。请改为定期运行:

systemctl enable --now fstrim.timer
fstrim -v /srv/data

扩展卷

订购更多容量,然后在原地扩展文件系统。无需卸载,无需重启。

lsblk -o NAME,SIZE
resize2fs /dev/vdb          # ext4, by device
xfs_growfs /srv/data        # XFS, by mount point

将这两个顺序弄错会产生一个令人困惑的错误信息,但不会造成任何损坏,这是工具应有的正确行为。

如果需要加密

cryptsetup luksFormat --type luks2 /dev/vdb
cryptsetup open /dev/vdb data
mkfs.ext4 -L data /dev/mapper/data

首先了解后果。受密码保护的卷无法无人值守挂载,因此每次重启都需要一个人在控制台上输入密码。将密钥文件放在根磁盘上会消除这个问题,同时也大大减少了加密的好处。要刻意选择,而不是默认选择。

检查硬件的健全性

fio --name=rw --rw=randwrite --bs=4k --size=2G --numjobs=4 --iodepth=32 --direct=1 --runtime=60 --time_based --group_reporting

在新卷上运行该命令,绝不要在 / 上运行,也绝不要在包含你想保留数据的文件系统上运行。如果结果比 硬件页面 描述的低一个数量级,请将输出提交一个工单,我们会检查主机,而不是检查你。

Sẵn sàng khi bạn cần

Chọn thành phố. Chọn kích thước. Thanh toán bằng coin.

Không có biểu mẫu về bạn là ai, không chờ đợi con người phê duyệt, không gọi điện thoại để xác minh bất cứ điều gì. Hóa đơn được thanh toán và thông tin đăng nhập sẽ vào hộp thư của bạn.