我目前在一个卷组 (VG) 上有几个逻辑卷 (LV)。此 VG 托管在单个物理卷 (PV) 上。我有一个备用驱动器,我可以用它来随机播放数据。
我现在还有一个与我原来的 PV 驱动器相匹配的新驱动器。我想移动现有的 LV,最终使 LV 跨越两个 PV。这可能吗?你怎么做呢?
从命令行似乎这是不可能的。striping
与默认linear
分配方案有很大不同。因此,虽然您可以跨多个物理卷 ( PV
)扩展文件系统,但您无法获得条带化的“负载平衡”优势。
要扩大文件系统,您可以执行以下操作:
pvcreate /dev/mapper/md2_crypt
vgextend crypto /dev/mapper/md2_crypt
umount /dev/mapper/crypto-srv
fsck.ext4 -C0 -f /dev/mapper/crypto-srv
lvresize -l +100%FREE /dev/mapper/crypto-srv
resize2fs /dev/mapper/crypto-srv
mount /srv
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,md2_crypt
是 RAID-1 阵列顶部的加密卷,但它可以是任何设备。crypto
是卷组 ( VG
) 并且crypto-srv
是包含挂载文件系统的逻辑卷/srv
。
提醒:您确实应该至少使用 RAID-1 阵列,因为如果
linear
逻辑卷 (LV
) 中的 PV 出现故障,您可能会丢失所有数据。
这不会使/srv
分区跨 PV 条带化。这是因为没有userland工具来支持linear
,以striped
转换。从逻辑上讲,这将在lvconvert
命令中,但仅支持从模式linear
到mirror
模式的移动和返回,例如。随着所有新开发进入BTRFS,如果有记录,我会感到惊讶。
但是,您可以做的一件事是对驱动器上的新数据进行条带化。这是相当棘手的,但它可以做到。假设我们要对 进行条纹crypto-tmp
,即 LV 的 LV /tmp
。我们首先需要为第一个 PV 中的条纹释放空间:
pvmove -n crypto/tmp /dev/mapper/md1_crypt
Run Code Online (Sandbox Code Playgroud)
这将在 PV 之间重新分配 LV,在我的情况下,它将它全部移动到第二个 PV:
root@foo:~# pvs --segments -o+lv_name,seg_start_pe,segtype
PV VG Fmt Attr PSize PFree Start SSize LV Start Type
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 10.00g 0 2384 root 0 linear
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 10.00g 2384 256 swap 0 linear
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 10.00g 2640 2560 0 free
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 10.00g 5200 709901 srv 0 linear
/dev/mapper/md2_crypt crypto lvm2 a-- 1.82t 1.81t 0 2560 tmp 0 linear
/dev/mapper/md2_crypt crypto lvm2 a-- 1.82t 1.81t 2560 474077 0 free
Run Code Online (Sandbox Code Playgroud)
现在您可以扩大文件系统(假设我们将其大小加倍)并告诉 LVM 对新数据进行条带化:
root@foo:~# lvresize -i 2 -l 5120 /dev/crypto/tmp
Using default stripesize 64.00 KiB
Extending logical volume tmp to 20.00 GiB
Logical volume tmp successfully resized
Run Code Online (Sandbox Code Playgroud)
现在,新数据/tmp
跨两个 PV 条带化:
root@foo:~# pvs --segments -o+lv_name,seg_start_pe,segtype
PV VG Fmt Attr PSize PFree Start SSize LV Start Type
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 5.00g 0 2384 root 0 linear
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 5.00g 2384 256 swap 0 linear
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 5.00g 2640 1280 tmp 2560 striped
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 5.00g 3920 1280 0 free
/dev/mapper/md1_crypt crypto lvm2 a-- 2.73t 5.00g 5200 709901 srv 0 linear
/dev/mapper/md2_crypt crypto lvm2 a-- 1.82t 1.80t 0 2560 tmp 0 linear
/dev/mapper/md2_crypt crypto lvm2 a-- 1.82t 1.80t 2560 1280 tmp 2560 striped
/dev/mapper/md2_crypt crypto lvm2 a-- 1.82t 1.80t 3840 472797 0 free
Run Code Online (Sandbox Code Playgroud)
但原始数据仍处于linear
模式中。可以将文件系统移动到条带区,但此时请考虑对读者进行练习。:)
另请参阅使用条带化和Redhat LVM 更改条带增加 LVM 卷?.
另请注意,反向(转换striped
为linear
)是可能的,但是:是否可以将条带逻辑卷转换为线性逻辑卷?.
归档时间: |
|
查看次数: |
9923 次 |
最近记录: |