我在 CentOS 上的 NVMe 驱动器 (2x1TB) 上设置了 SoftRAID。问题是我只配置了 80GB,现在我想配置更多的空间。有人可以帮我做这个吗?这是输出lsblk
:
nvme0n1 259:1 0 894.3G 0 disk
├─nvme0n1p1 259:3 0 511M 0 part /boot/efi
├─nvme0n1p2 259:5 0 78.1G 0 part
│ └─md2 9:2 0 78.1G 0 raid1 /
└─nvme0n1p3 259:7 0 511M 0 part [SWAP]
nvme1n1 259:0 0 894.3G 0 disk
├─nvme1n1p1 259:2 0 511M 0 part
├─nvme1n1p2 259:4 0 78.1G 0 part
│ └─md2 9:2 0 78.1G 0 raid1 /
└─nvme1n1p3 259:6 0 511M 0 part [SWAP]
[root@cloud963 ~]# cat /proc/partitions
major minor #blocks name
259 0 937692504 nvme1n1
259 2 523264 nvme1n1p1
259 4 81918976 nvme1n1p2
259 6 523264 nvme1n1p3
259 1 937692504 nvme0n1
259 3 523264 nvme0n1p1
259 5 81918976 nvme0n1p2
259 7 523264 nvme0n1p3
9 2 81918912 md2
8 0 5860522584 sda
8 1 5860520960 sda1
8 16 5860522584 sdb
8 17 5860520960 sdb1
9 4 5860388864 md4
253 0 52428800 dm-0
253 1 314572800 dm-1
253 2 20971520 dm-2
253 3 20971520 dm-3
答案1
太长了,没看版本:
您可以查找“如何使用mdadm
创建新的 raid 分区”,但拥有单独的 RAID 分区实际上并没有给自己带来好处。相反,使用卷管理器来充分利用您的空间 - 并最大限度地延长 SSD 的使用寿命,因为通过正确删除重复/丢弃的块,它们的寿命会更长。
整个故事
因此,特别是当您使用多个磁盘和大量存储进行操作时,如果您拥有卷管理器,那就太聪明了。
让我们执行以下操作:
- 创建一个新的镜像块设备(因此 Linux 负责数据冗余,就像现在在 nvme0n1p2/nvme1n1p2 上所做的那样)
- 创建一个空间,您可以在其中随意创建、删除、调整大小、快照卷(卷基本上是一个分区,但是一个更灵活的术语)。这被称为卷组。
- 在该空间内创建一个所谓的薄池,这仅意味着该空间内的卷仅占用它们实际需要的空间(删除文件将为您提供可用于其他卷的内存)。
- 在该精简池中创建一个大卷,并使用支持精简配置的现代文件系统对其进行格式化(即告诉卷管理器何时不再使用存储扇区,以便它可以将其计为可用存储)
- 最后,将该卷添加到 fstab 并演示它可以使用。
这一切的目的是,您无需购买外部驱动器来复制文件,以防您需要转移任何内容,并且 RAID 之间的备份能够顺利进行并尽可能节省空间(这就是钱)。
怎么做
我会做以下事情:
- 使用您最喜欢的分区工具 1 在 nvme0n1 和 nvme1n1 上分别添加一个新分区。下面我将它们称为 $PA 和 $PB,实际上它们可能分别是 /dev/nvme0n1p4 和 /dev/nvme1n1p4²。
让它们使用所有可用空间(或者可能在可用空间中保留两倍的 RAM 空间,并稍后扩大交换空间,这似乎是非常小的交换空间)。不要在此处格式化它们(或使用“LVM 物理卷”作为格式)。 - 从这两个分区创建一个 RAID1(我假设
/dev/md3
当前不存在;检查ls /dev/md*
并选择一个尚不存在的数字)
sudo mdadm --create /dev/md3 --level=1 --raid-devices=2 $PA $PB
我们现在创建了一个镜像块设备 /dev/md3。 - 创建一个 LVM2 (逻辑卷管理器) 包含新 RAID 块设备的卷组:
sudo vgcreate raidvg /dev/md3
我们现在有一个名为“raidvg”的卷组。 - 让我们在该卷组中创建一个精简池:
sudo lvcreate -l 100%FREE -T raidvg/thinpool
我们现在有一个名为“thinpool”的精简池。它填满了卷组的所有空间,这意味着它占用了您在 1 中创建的完整 RAID 卷。
太棒了,现在您可以非常灵活地使用它!
因此,这些是您能够在其中创建任意多个卷的准备。让我们这样做吧。
- 最后让我们在其中创建一个卷,其“虚拟”大小为 100 GB³
sudo lvcreate -V 100G -T raidvg/thinpool -n firstvolume
我们现在有一个(精简配置的)卷“firstvolume”。您可以将其视为块设备/dev/mapper/raidvg-firstvolume
。 - 在其上创建一个文件系统。当您希望文件系统可以告诉底层它没有使用某些块时,您可以在 XFS 和 btrfs 之间进行选择(状态:2021 年 6 月),以便您可以重用空间。 CentOS 下:XFS。
sudo mkfs.xfs /dev/mapper/raidvg-firstvolume
- 安装那个!首先,创建一个挂载点,比如
/catpictures
sudo mkdir /catpictures
sudo mount /dev/mapper/raidvg-firstvolume /catpictures
Tadah,/catpictures
现在可以使用了。如果您希望 root 之外的其他人将内容放入其中,请根据您的喜好调整该文件夹的权限。 - (可选,但在启动时启用挂载)编辑 /etc/fstab 以包含该内容! ,然后添加
/dev/mapper/raidvg-firstvolume /catpictures xfs noatime 0 0
到 /etc/fstab.
就是这样,真的!
如果您稍后想要添加另一个卷,您只需运行
sudo lvcreate -V 100G -T raidvg/thinpool -n name_of_new_volume
您可以通过在已安装的文件系统上运行来显式查找文件系统中未使用的标记空间sudo fstrim
(但您的 CentOS 可能偶尔也会自动执行此操作)。
您可以使用删除卷
sudo lvremove /dev/mapper/raidvg-name_of_volume_to_be_deleted.
如果你发现有超过 100GB 的猫图片,你可以这样做
sudo lvextend -L200G -r /dev/mapper/raidvg-firstvolume
将卷的大小增加到 200 GB(或者更确切地说,它的最大大小 - 这仍然是精简配置,并且仅使用它实际用于存储数据的 SSD 空间)。开关-r
告诉它告诉 XFS 关于大小的变化。这一切都可以在线完成,即在您/catpictures
安装完毕后!
LVM 精简池有许多很酷的功能。由于您使用的是 RAID1,您可能会关心数据归档 –快照允许您按原样保留数据版本今天并将其单独用作另一个卷,而不复制未更改的数据。
1blivet-gui
如果您使用的是 CentOS 8,来自 EPEL 的工具非常好,如果您使用的是 CentOS 7,请使用gparted
² 你可能应该字面意思export PA=/dev/nvme0n1p4 ; export PB=/dev/nvme1n1p4
,然后你就不必再次输入这些较长的字符串
³ 该空间未被使用现在, 你可以有更多的精简配置的内存比您实际拥有的空间要多。我们本来可以使用 5 TB 作为虚拟空间!当文件系统使用该空间时,该空间实际上会分配给您的卷。看看sudo lvs
使用百分比如何。只有当您尝试实际保存的数据多于可用空间时,您才会遇到问题 - 然后您必须向系统添加更多 SSD,因为 LVM 可以做很多事情,但不是神奇:)