我是一位缺乏经验的 PHP 开发人员,必须处理以下系统管理问题。
我们有一台运行 Xen(xen-hypervisor-4.4-amd64 4.4.0-0ubuntu5.1)的 Ubuntu(Ubuntu 14.04.1 LTS)服务器。
它有两个物理磁盘(250GB 和 2TB),每个磁盘包含一个 LVM 文件系统(/dev/sdb 是旧的 250GB,/dev/sda 是新的 2TB)。
root@xen:~# pvscan
PV /dev/sdb3 VG tiffany-vg lvm2 [232.17 GiB / 85.48 GiB free]
PV /dev/sda5 VG xen-vg lvm2 [1.82 TiB / 1.77 TiB free]
Total: 2 [2.05 TiB] / in use: 2 [2.05 TiB] / in no VG: 0 [0 ]
我需要将组“tiffany-vg”移动到新的/更大的磁盘 (/dev/sda),目的是从服务器中删除旧的 250GB 物理磁盘。目标磁盘已经包含另一个名为“xen-vg”的 LVM 组,该组必须保持独立。
我想将“tiffany-vg”移至 /dev/sda 上的“xen-vg”旁边,并且我真的需要不丢失任何数据!我真的不想造成任何数据丢失?
我可能用错了一些术语,但我确信你明白我想要表达的意思。
更新:
“目标”磁盘(/dev/sda)当前看起来像这样...
root@xen:~# parted /dev/sda
#...snip
Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 2000GB 2000GB extended
5 257MB 2000GB 2000GB logical lvm
答案1
一个卷组可以有多个物理磁盘(或者在您的情况下是分区)。
首先,您需要在更大的磁盘上有足够的空间(/dev/sda
)。
您在帖子中没有提到这一点,但根据您的问题,我假设您可以腾出空间,然后添加一个新分区,我们将其称为:/dev/sdaX
更新后扩展:
您可以/dev/sda
通过简单地合并卷组来腾出空间,但您不想这样做 - 正如您在原始帖子中所说的那样。您需要做的实际上比这更简单。
按着这些次序:
步骤 5:减少物理卷/dev/sda5
以便为新分区腾出空间:
pvresize /dev/sda5 -L 1500G
步骤 4:使用将parted
的大小减小/dev/sda5
到 1600G(是的,比我们使用的要大一点pvresize
!)
步骤 3:使用parted
创建一个新的分区,/dev/sda6
并赋予新的可用空间(大约 400G)。
步骤 2:检查内核是否可以自动检测分区更改。查看是否/proc/partition
与新状态匹配(因此/dev/sda6
可见)。如果不匹配,则需要重新启动。(可能会。)
步骤 1:你可以让它/dev/sda5
再次变得尽可能大:
pvresize /dev/sda5
步骤 0:格式化/dev/sda6
为物理卷:
pvcreate /dev/sda6
从这一点来说,/dev/sda6
就是我们的/dev/sdaX
。
延伸结束
首先:您应该给予/dev/sdaX
卷组tiffany-vg
:
vgextend tiffany-vg /dev/sdaX
第二:您应该将所有数据移动到卷组 tiffany-vg 的(已有)两个物理卷之间:
pvmove tiffany-vg /dev/sdb3 /dev/sdaX
第三:您应该/dev/sdb3
从 tiffany-vg 卷组中删除:
vgreduce tiffany-vg /dev/sdb3
注意:上面的第二步有点关键,要保持好奇心。如果是根分区,最好从救援盘执行。祝你好运!
如果你只是合并卷组
步骤 1:您可以简单地将 合并xen-vg
到您的 中tiffany-vg
:
vgmerge tiffany-vg xen-vg
第 2 步:将所有数据从 移动/dev/sdb3
到/dev/sda5
:
pvmove tiffany-vg /dev/sdb3 /dev/sda5
步骤 3:/dev/sdb3
从新的大卷组中删除:
vgreduce tiffany-vg /dev/sdb3
但要小心:此处您的旧xen-vg
卷组已结束其使用寿命,其所有卷均已移至 下方/dev/tiffany-vg
。您需要在系统配置中更改对它们的每个引用(您不太可能需要更改 中的任何内容/etc/fstab
)。
结尾