这是我现有的磁盘分区。
[root@xyz development: /root] lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
repolv repovg -wi-ao---- 1.95t
LogVol00 rootvg -wi-ao---- 6.00g
LogVol01 rootvg -wi-ao---- 10.00g
LogVol02 rootvg -wi-ao---- 10.00g
LogVol03 rootvg -wi-ao---- 15.00g
LogVol04 rootvg -wi-ao---- 8.00g
[root@xyz development: /root] lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/sda 8:0 0 100G 0 disk
├─/dev/sda1 8:1 0 500M 0 part /boot
└─/dev/sda2 8:2 0 92.7G 0 part
├─/dev/mapper/rootvg-LogVol00 253:0 0 6G 0 lvm /
├─/dev/mapper/rootvg-LogVol04 253:1 0 8G 0 lvm [SWAP]
├─/dev/mapper/rootvg-LogVol03 253:3 0 15G 0 lvm /var
├─/dev/mapper/rootvg-LogVol02 253:4 0 10G 0 lvm /tmp
└─/dev/mapper/rootvg-LogVol01 253:5 0 10G 0 lvm /opt
/dev/sdb 8:16 0 50G 0 disk
/dev/sdc 8:32 0 1.5T 0 disk
/dev/sdd 8:48 0 1.5T 0 disk
└─/dev/mapper/repovg-repolv 253:2 0 2T 0 lvm /var/www/html
/dev/sde 8:64 0 1.5T 0 disk
└─/dev/mapper/repovg-repolv 253:2 0 2T 0 lvm /var/www/html
/dev/sdf 8:80 0 1.5T 0 disk
└─/dev/mapper/repovg-repolv 253:2 0 2T 0 lvm /var/www/html
/dev/sdg 8:96 0 1.5T 0 disk
/dev/sdh 8:112 0 1.5T 0 disk
/dev/sr0 11:0 1 1024M 0 rom
[root@ development: /root] pvs | grep repovg
PV VG Fmt Attr PSize PFree
/dev/sdc repovg lvm2 a-- 1.46t 1.46t
/dev/sdd repovg lvm2 a-- 1.46t 500.00g
/dev/sde repovg lvm2 a-- 1.46t 1000.00g
/dev/sdf repovg lvm2 a-- 1.46t 1000.00g
/dev/sdg repovg lvm2 a-- 1.46t 1.46t
/dev/sdh repovg lvm2 a-- 1.46t 1.46t
- 首先我不明白下面的2.0T是怎么进来的。如果我们看到 lsblk 输出 /var/www/html 分布在 /dev/sdd、/dev/sde 和 /dev/sdf 上。那么根据数学计算应该是6.0T。
[root@xyz development: /root] df -h /var/www/html/ FileSystem Size Usage Free Usage% Mount Point /dev/mapper/repovg-repolv 2.0T 1.7T 263G 87% /var/www/html
- 其次,由于添加了新磁盘,我想将 /var/www/html 数据移动到其他磁盘并重组/移动安装点,如下所示。您能指导一下所有命令顺序吗?
FileSystem /dev/sdc : repovg-rhel6lv -> Mount to /var/www/html/RHEL6 /dev/sdd : repovg-rhel7lv -> Mount to /var/www/html/RHEL7 /dev/sde : repovg-rhel7awslv -> Mount to /var/www/html/RHEL7AWS /dev/sdf : repovg-rhel8lv -> Mount to /var/www/html/RHEL8 /dev/sdg : repovg-amzn24lv -> Mount to /var/www/html/AMZN24 /dev/sdh : repovg-amzn24lv -> Mount to /var/www/html/AMZN24
答案1
现在,您有一个 LV“repolv”,其中包含一个文件系统,您希望将其拆分为更小的部分,例如“rhel6lv”、“rhel7lv”等。然后您希望将每个新 LV 迁移到单独的物理磁盘。
一般做法如下:
- 为现在需要自己单独的挂载点的每个新文件系统创建一个新的 LV
- 移动数据
- 将 LV 迁移到各自的物理磁盘(尽管我会问任何给定 LV 驻留在哪个磁盘上是否真的很重要)
使用一次性数据测试以下内容。在完全确定它满足您的要求之前,请勿将其应用于生产数据。
为原始文件系统创建绑定挂载:
mkdir /mnt/vwh
mount --bind /var/www/html /mnt/vwh # Bind mount
现在,为每个新 LV/文件系统重复此块的变体。在开始之前检查适当的 LV 大小、文件系统类型和标签以及最终物理磁盘:
lvcreate --name rhel6lv --size 10G /dev/repovg # Check size
mkfs -t ext4 --label rhel6 /dev/repovg/rhel6lv # Check filesystem type and label name
mv /var/www/html/RHEL6 /var/www/html/RHEL6.old # Save the original data
mkdir /var/www/html/RHEL6 # Create mountpoint
mount /dev/repovg/rhel6lv /var/www/html/RHEL6 # Mount new filesystem
cp -a /mnt/vwh/RHEL6.old/. /var/www/html/RHEL6 &&
rm -rf /mnt/vwh/RHEL6.old # Move data
pvmove --name rhel6lv /dev/sdc # Move extents for this LV to the required target disk
如果您没有任何(隐藏)点文件,/mnt/vwh/RHEL6.old
您可以将其替换cp … && rm …
为mv /mnt/vwh/RHEL6.old/* /var/www/html/RHEL6
.
对于如此数量的磁盘,我强烈建议您考虑使用 RAID 来防止硬件故障。和备份。很多备份。尤其是在开始之前进行备份,以防万一出现严重错误。