添加硬盘我们都知道使用lv逻辑卷可以方便的扩容。
但是当原盘不是逻辑卷且其上有数据的时候,如何扩容呢?
因为扩容只能是磁盘type为逻辑卷lvm才可以。
新增数据盘创建逻辑卷分区后在将原分区创建逻辑卷之后再合并。
我们今天就来测试一下。
添加两块磁盘
查看分区情况
我们看到新添加的两块盘已经可以用了
[root@C8-196 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 199G 0 part ├─cl-root 253:0 0 70G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 127G 0 lvm /home sdb 8:16 0 5G 0 disk sdc 8:32 0 5G 0 disk对sdb进行传统分区并挂载数据目录
使用fdisk对/dev/sdb进行分区,创建一个主分区并格式化为xfs挂载数据目录/data
[root@C8-196 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x72dee268.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-10485759, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-10485759, default 10485759):
Created a new partition 1 of type 'Linux' and of size 5 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@C8-196 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=327616 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1310464, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@C8-196 ~]# mount /dev/sdb1 /data
[root@C8-196 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 876M 0 876M 0% /dev
tmpfs tmpfs 896M 0 896M 0% /dev/shm
tmpfs tmpfs 896M 17M 879M 2% /run
tmpfs tmpfs 896M 0 896M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 70G 2.3G 68G 4% /
/dev/mapper/cl-home xfs 127G 939M 126G 1% /home
/dev/sda1 xfs 1014M 197M 818M 20% /boot
tmpfs tmpfs 180M 0 180M 0% /run/user/0
/dev/sdb1 xfs 5.0G 68M 5.0G 2% /data
写入数据模拟数据盘写100个文件到磁盘上做数据测试
写100个文件到磁盘上做数据测试
for i in {1..100};do $(time dd if=/dev/zero of=/data/testw$i.db bs=4k count=10000);done&&ll /data&&df -Th
Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 876M 0 876M 0% /dev tmpfs tmpfs 896M 0 896M 0% /dev/shm tmpfs tmpfs 896M 17M 879M 2% /run tmpfs tmpfs 896M 0 896M 0% /sys/fs/cgroup /dev/mapper/cl-root xfs 70G 2.3G 68G 4% / /dev/mapper/cl-home xfs 127G 939M 126G 1% /home /dev/sda1 xfs 1014M 197M 818M 20% /boot tmpfs tmpfs 180M 0 180M 0% /run/user/0 /dev/sdb1 xfs 5.0G 3.9G 1.2G 78% /data在sdc上创建逻辑卷lvm模拟新增盘扩容
不分区直接对sdc整盘创建逻辑卷
pvcreate /dev/sdc&&vgcreate datavg /dev/sdc&&lvcreate -l 100%FREE -n datalv datavg&&lsblk
[root@C8-196 ~]# pvcreate /dev/sdc&&vgcreate datavg /dev/sdc&&lvcreate -l 100%FREE -n datalv datavg&&lsblk Physical volume "/dev/sdc" successfully created. Volume group "datavg" successfully created Logical volume "datalv" created. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 199G 0 part ├─cl-root 253:0 0 70G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 127G 0 lvm /home sdb 8:16 0 5G 0 disk └─sdb1 8:17 0 5G 0 part /data sdc 8:32 0 5G 0 disk └─datavg-datalv 253:3 0 5G 0 lvm尝试直接使用dd命令拷贝sdb1上的数据到sdc逻辑卷
据说dd有格式化的功能尝试逻辑卷不创建文件系统直接dd结果dd了个寂寞
[root@C8-196 ~]# time dd if=/dev/sdb1 of=/dev/mapper/datavg-datalv dd: writing to '/dev/mapper/datavg-datalv': No space left on device 10477569+0 records in 10477568+0 records out 5364514816 bytes (5.4 GB, 5.0 GiB) copied, 63.8898 s, 84.0 MB/s real 1m3.891s user 0m0.823s sys 0m22.107s [root@C8-196 ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 876M 0 876M 0% /dev tmpfs tmpfs 896M 0 896M 0% /dev/shm tmpfs tmpfs 896M 17M 879M 2% /run tmpfs tmpfs 896M 0 896M 0% /sys/fs/cgroup /dev/mapper/cl-root xfs 70G 2.3G 68G 4% / /dev/mapper/cl-home xfs 127G 939M 126G 1% /home /dev/sda1 xfs 1014M 197M 818M 20% /boot tmpfs tmpfs 180M 0 180M 0% /run/user/0 /dev/sdb1 xfs 5.0G 3.9G 1.2G 78% /data [root@C8-196 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 199G 0 part ├─cl-root 253:0 0 70G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 127G 0 lvm /home sdb 8:16 0 5G 0 disk └─sdb1 8:17 0 5G 0 part /data sdc 8:32 0 5G 0 disk └─datavg-datalv 253:3 0 5G 0 lvm [root@C8-196 ~]# mount /dev/mapper/datavg-datalv /data mount: /data: wrong fs type, bad option, bad superblock on /dev/mapper/datavg-datalv, missing codepage or helper program, or other error.尝试创建文件系统后再dd
创建文件系统的时候告诉我已经有了难道是惊喜?告诉我什么是TMD惊喜?
[root@C8-196 ~]# mkfs.xfs /dev/mapper/datavg-datalv mkfs.xfs: /dev/mapper/datavg-datalv appears to contain an existing filesystem (xfs). mkfs.xfs: Use the -f option to force overwrite.尝试先解挂载后再挂载新创建的逻辑卷
之前dd后没有umount就直接挂载,提示出错了这回试试先umount以后,再挂载同一个目录同一个梦想
[root@C8-196 ~]# umount /dev/sdb1 [root@C8-196 ~]# df -TH Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 919M 0 919M 0% /dev tmpfs tmpfs 939M 0 939M 0% /dev/shm tmpfs tmpfs 939M 18M 922M 2% /run tmpfs tmpfs 939M 0 939M 0% /sys/fs/cgroup /dev/mapper/cl-root xfs 76G 2.5G 73G 4% / /dev/mapper/cl-home xfs 137G 984M 136G 1% /home /dev/sda1 xfs 1.1G 207M 857M 20% /boot tmpfs tmpfs 188M 0 188M 0% /run/user/0 [root@C8-196 ~]# mount -t xfs /dev/mapper/datavg-datalv /data mount: /data: can't read superblock on /dev/mapper/datavg-datalv.
白兴奋了,还是挂了个寂寞 尝试创建文件系统后再dd
先把目录挂回来,保持挂载状态,看看dd有啥效果
[root@C8-196 ~]# mount /dev/sdb1 /data&&ls /data testw100.db testw25.db testw40.db testw56.db testw71.db testw87.db testw10.db testw26.db testw41.db testw57.db testw72.db testw88.db testw11.db testw27.db testw42.db testw58.db testw73.db testw89.db testw12.db testw28.db testw43.db testw59.db testw74.db testw8.db testw13.db testw29.db testw44.db testw5.db testw75.db testw90.db testw14.db testw2.db testw45.db testw60.db testw76.db testw91.db testw15.db testw30.db testw46.db testw61.db testw77.db testw92.db testw16.db testw31.db testw47.db testw62.db testw78.db testw93.db testw17.db testw32.db testw48.db testw63.db testw79.db testw94.db testw18.db testw33.db testw49.db testw64.db testw7.db testw95.db testw19.db testw34.db testw4.db testw65.db testw80.db testw96.db testw1.db testw35.db testw50.db testw66.db testw81.db testw97.db testw20.db testw36.db testw51.db testw67.db testw82.db testw98.db testw21.db testw37.db testw52.db testw68.db testw83.db testw99.db testw22.db testw38.db testw53.db testw69.db testw84.db testw9.db testw23.db testw39.db testw54.db testw6.db testw85.db testw24.db testw3.db testw55.db testw70.db testw86.db
强制创建文件系统在逻辑卷上
[root@C8-196 ~]# mkfs.xfs /dev/mapper/datavg-datalv -f
meta-data=/dev/mapper/datavg-datalv isize=512 agcount=4, agsize=327424 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1309696, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
再次dd,哈哈哈!
[root@C8-196 ~]# time dd if=/dev/sdb1 of=/dev/mapper/datavg-datalv dd: writing to '/dev/mapper/datavg-datalv': No space left on device 10477569+0 records in 10477568+0 records out 5364514816 bytes (5.4 GB, 5.0 GiB) copied, 59.9753 s, 89.4 MB/s real 0m59.977s user 0m0.669s sys 0m19.805s
估计还是挂不上
[root@C8-196 ~]# mount /dev/mapper/datavg-datalv /data mount: /data: wrong fs type, bad option, bad superblock on /dev/mapper/datavg-datalv, missing codepage or helper program, or other error. [root@C8-196 ~]# umount /dev/sdb1 [root@C8-196 ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 876M 0 876M 0% /dev tmpfs tmpfs 896M 0 896M 0% /dev/shm tmpfs tmpfs 896M 17M 879M 2% /run tmpfs tmpfs 896M 0 896M 0% /sys/fs/cgroup /dev/mapper/cl-root xfs 70G 2.3G 68G 4% / /dev/mapper/cl-home xfs 127G 939M 126G 1% /home /dev/sda1 xfs 1014M 197M 818M 20% /boot tmpfs tmpfs 180M 0 180M 0% /run/user/0 [root@C8-196 ~]# mount /dev/mapper/datavg-datalv /data mount: /data: can't read superblock on /dev/mapper/datavg-datalv.
同样的结果,再次出现,看来dd果然是带有格式化功能呢 正经挂载逻辑卷吧
按照正常步骤来是肯定能挂上的
[root@C8-196 ~]# mkfs.xfs /dev/mapper/datavg-datalv -f
meta-data=/dev/mapper/datavg-datalv isize=512 agcount=4, agsize=327424 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1309696, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@C8-196 ~]# mount /dev/mapper/datavg-datalv /data
[root@C8-196 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 876M 0 876M 0% /dev
tmpfs tmpfs 896M 0 896M 0% /dev/shm
tmpfs tmpfs 896M 17M 879M 2% /run
tmpfs tmpfs 896M 0 896M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 70G 2.3G 68G 4% /
/dev/mapper/cl-home xfs 127G 939M 126G 1% /home
/dev/sda1 xfs 1014M 197M 818M 20% /boot
tmpfs tmpfs 180M 0 180M 0% /run/user/0
/dev/mapper/datavg-datalv xfs 5.0G 68M 5.0G 2% /data
[root@C8-196 ~]# ls /data
[root@C8-196 ~]# ll /data
total 0
创建一个新目录挂原数据盘
创建新的目录用来挂载原来的数据盘,数据都在里边
[root@C8-196 ~]# mkdir /datasrc [root@C8-196 ~]# mount /dev/sdb1 /datasrc/&&ls /datasrc&&df -Th testw100.db testw25.db testw40.db testw56.db testw71.db testw87.db testw10.db testw26.db testw41.db testw57.db testw72.db testw88.db testw11.db testw27.db testw42.db testw58.db testw73.db testw89.db testw12.db testw28.db testw43.db testw59.db testw74.db testw8.db testw13.db testw29.db testw44.db testw5.db testw75.db testw90.db testw14.db testw2.db testw45.db testw60.db testw76.db testw91.db testw15.db testw30.db testw46.db testw61.db testw77.db testw92.db testw16.db testw31.db testw47.db testw62.db testw78.db testw93.db testw17.db testw32.db testw48.db testw63.db testw79.db testw94.db testw18.db testw33.db testw49.db testw64.db testw7.db testw95.db testw19.db testw34.db testw4.db testw65.db testw80.db testw96.db testw1.db testw35.db testw50.db testw66.db testw81.db testw97.db testw20.db testw36.db testw51.db testw67.db testw82.db testw98.db testw21.db testw37.db testw52.db testw68.db testw83.db testw99.db testw22.db testw38.db testw53.db testw69.db testw84.db testw9.db testw23.db testw39.db testw54.db testw6.db testw85.db testw24.db testw3.db testw55.db testw70.db testw86.db Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 876M 0 876M 0% /dev tmpfs tmpfs 896M 0 896M 0% /dev/shm tmpfs tmpfs 896M 17M 879M 2% /run tmpfs tmpfs 896M 0 896M 0% /sys/fs/cgroup /dev/mapper/cl-root xfs 70G 2.3G 68G 4% / /dev/mapper/cl-home xfs 127G 939M 126G 1% /home /dev/sda1 xfs 1014M 197M 818M 20% /boot tmpfs tmpfs 180M 0 180M 0% /run/user/0 /dev/mapper/datavg-datalv xfs 5.0G 68M 5.0G 2% /data /dev/sdb1 xfs 5.0G 3.9G 1.2G 78% /datasrc用dd直接拷贝目录吧
想的太美了,dd不能拷贝目录
[root@C8-196 ~]# time dd if=/datasrc of=/data dd: failed to open '/data': Is a directory real 0m0.001s user 0m0.000s sys 0m0.001s老老实实的用CP吧
time cp -av /datasrc /data
[root@C8-196 ~]# time cp -av /datasrc /data '/datasrc' -> '/data/datasrc' '/datasrc/testw1.db' -> '/data/datasrc/testw1.db' '/datasrc/testw2.db' -> '/data/datasrc/testw2.db' '/datasrc/testw3.db' -> '/data/datasrc/testw3.db' ## : ## 中间省略好多行 ## : '/datasrc/testw99.db' -> '/data/datasrc/testw99.db' '/datasrc/testw100.db' -> '/data/datasrc/testw100.db' real 0m2.541s user 0m0.006s sys 0m2.155s数据迁移完了就搞原来的数据盘弄成逻辑卷就行了
[root@C8-196 ~]# umount /datasrc [root@C8-196 ~]# pvcreate /dev/sdb Cannot use /dev/sdb: device is partitioned [root@C8-196 ~]# pvcreate /dev/sdv1 No device found for /dev/sdv1. [root@C8-196 ~]# pvcreate /dev/sdb1 WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: n Aborted wiping of xfs. 1 existing signature left on the device. [root@C8-196 ~]# pvcreate /dev/sdb1&&vgcreate datavg /dev/sdb1&&lvextend -rl 100%FREE /dev/mapper/datavg-datalv WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y Wiping xfs signature on /dev/sdb1. Physical volume "/dev/sdb1" successfully created. /dev/datavg: already exists in filesystem Run `vgcreate --help' for more information. [root@C8-196 ~]# vgex vgexport vgextend [root@C8-196 ~]# vgextend cl datavg [root@C8-196 ~]# vgextend datavg /dev/sdb1&&lvextend -rl 100%FREE /dev/mapper/datavg-datalv&&lsblk&&df -Th Volume group "datavg" successfully extended Size of logical volume datavg/datalv unchanged from <5.00 GiB (1279 extents). Logical volume datavg/datalv successfully resized. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 199G 0 part ├─cl-root 253:0 0 70G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 127G 0 lvm /home sdb 8:16 0 5G 0 disk └─sdb1 8:17 0 5G 0 part sdc 8:32 0 5G 0 disk └─datavg-datalv 253:3 0 5G 0 lvm /data Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 876M 0 876M 0% /dev tmpfs tmpfs 896M 0 896M 0% /dev/shm tmpfs tmpfs 896M 17M 879M 2% /run tmpfs tmpfs 896M 0 896M 0% /sys/fs/cgroup /dev/mapper/cl-root xfs 70G 2.3G 68G 4% / /dev/mapper/cl-home xfs 127G 939M 126G 1% /home /dev/sda1 xfs 1014M 197M 818M 20% /boot tmpfs tmpfs 180M 0 180M 0% /run/user/0 /dev/mapper/datavg-datalv xfs 5.0G 3.9G 1.2G 78% /data
sdb1怎么还没变? /data目录的空间也没变大啊! 查看当前逻辑卷的状态
[root@C8-196 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <199.00g 0 /dev/sdb1 datavg lvm2 a-- <5.00g <5.00g /dev/sdc datavg lvm2 a-- <5.00g 0 [root@C8-196 ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 3 0 wz--n- <199.00g 0 datavg 2 1 0 wz--n- 9.99g <5.00g [root@C8-196 ~]# lvs LV VG Attr LSize Pool Origin Data% meta% Move Log Cpy%Sync Convert home cl -wi-ao---- 126.96g root cl -wi-ao---- 70.00g swap cl -wi-ao---- 2.03g datalv datavg -wi-ao---- <5.00g再搞一次扩展
[root@C8-196 ~]# lvextend -r -l 100%FREE /dev/mapper/datavg-datalv Size of logical volume datavg/datalv unchanged from <5.00 GiB (1279 extents). Logical volume datavg/datalv successfully resized. [root@C8-196 ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 876M 0 876M 0% /dev tmpfs tmpfs 896M 0 896M 0% /dev/shm tmpfs tmpfs 896M 17M 879M 2% /run tmpfs tmpfs 896M 0 896M 0% /sys/fs/cgroup /dev/mapper/cl-root xfs 70G 2.3G 68G 4% / /dev/mapper/cl-home xfs 127G 939M 126G 1% /home /dev/sda1 xfs 1014M 197M 818M 20% /boot tmpfs tmpfs 180M 0 180M 0% /run/user/0 /dev/mapper/datavg-datalv xfs 5.0G 3.9G 1.2G 78% /data [root@C8-196 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 199G 0 part ├─cl-root 253:0 0 70G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 127G 0 lvm /home sdb 8:16 0 5G 0 disk └─sdb1 8:17 0 5G 0 part sdc 8:32 0 5G 0 disk └─datavg-datalv 253:3 0 5G 0 lvm /data [root@C8-196 ~]#
结果还是没变???所以lvextend不好用,哈哈哈! 一步到位的逻辑卷扩容大法来了!
[root@C8-196 ~]# lvresize -r -l 100%FREE /dev/mapper/datavg-datalv&&df -Th &&lsblk Size of logical volume datavg/datalv unchanged from <5.00 GiB (1279 extents). Logical volume datavg/datalv successfully resized. Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 876M 0 876M 0% /dev tmpfs tmpfs 896M 0 896M 0% /dev/shm tmpfs tmpfs 896M 17M 879M 2% /run tmpfs tmpfs 896M 0 896M 0% /sys/fs/cgroup /dev/mapper/cl-root xfs 70G 2.3G 68G 4% / /dev/mapper/cl-home xfs 127G 939M 126G 1% /home /dev/sda1 xfs 1014M 197M 818M 20% /boot tmpfs tmpfs 180M 0 180M 0% /run/user/0 /dev/mapper/datavg-datalv xfs 5.0G 3.9G 1.2G 78% /data NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 199G 0 part ├─cl-root 253:0 0 70G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 127G 0 lvm /home sdb 8:16 0 5G 0 disk └─sdb1 8:17 0 5G 0 part sdc 8:32 0 5G 0 disk └─datavg-datalv 253:3 0 5G 0 lvm /data
结果还是一样的,那个sdb1就有问题在那看他不爽,搞掉他
[root@C8-196 ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d Selected partition 1 Partition 1 has been deleted. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. [root@C8-196 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 199G 0 part ├─cl-root 253:0 0 70G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 127G 0 lvm /home sdb 8:16 0 5G 0 disk sdc 8:32 0 5G 0 disk └─datavg-datalv 253:3 0 5G 0 lvm /data逻辑分区再次搞起!
[root@C8-196 ~]# pvcreate /dev/sdb&&vgextend datavg /dev/sdb&&lvresize -r -l +100%FREE /dev/mapper/datavg-datalv&&df -Th &&lsblk WARNING: dos signature detected on /dev/sdb at offset 510. Wipe it? [y/n]: y Wiping dos signature on /dev/sdb. Physical volume "/dev/sdb" successfully created. WARNING: Couldn't find device with uuid l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV. WARNING: VG datavg is missing PV l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV (last written to /dev/sdb1). WARNING: Couldn't find device with uuid l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV. WARNING: Couldn't find device with uuid l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV. Volume group "datavg" successfully extended WARNING: Couldn't find device with uuid l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV. WARNING: VG datavg is missing PV l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV (last written to [unknown]). Cannot change VG datavg while PVs are missing. See vgreduce --removemissing and vgextend --restoremissing. Cannot process volume group datavg [root@C8-196 ~]# pvs WARNING: Couldn't find device with uuid l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV. WARNING: VG datavg is missing PV l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV (last written to [unknown]). PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <199.00g 0 /dev/sdb datavg lvm2 a-- <5.00g <5.00g /dev/sdc datavg lvm2 a-- <5.00g 0 [unknown] datavg lvm2 a-m <5.00g <5.00g [root@C8-196 ~]# vgs WARNING: Couldn't find device with uuid l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV. WARNING: VG datavg is missing PV l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV (last written to [unknown]). VG #PV #LV #SN Attr VSize VFree cl 1 3 0 wz--n- <199.00g 0 datavg 3 1 0 wz-pn- <14.99g 9.99g
结果搞挂了!哈哈哈!忘了把原来的vg拿掉了
[root@C8-196 ~]# pvs WARNING: Couldn't find device with uuid l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV. WARNING: VG datavg is missing PV l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV (last written to [unknown]). PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <199.00g 0 /dev/sdb datavg lvm2 a-- <5.00g <5.00g /dev/sdc datavg lvm2 a-- <5.00g 0 [unknown] datavg lvm2 a-m <5.00g <5.00g [root@C8-196 ~]# vgreduce --removemissing datavg WARNING: Couldn't find device with uuid l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV. WARNING: VG datavg is missing PV l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV (last written to [unknown]). WARNING: Couldn't find device with uuid l7TGdc-G8Zg-ZqCJ-Ef7X-wF2R-den5-njtWyV. Wrote out consistent volume group datavg. [root@C8-196 ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 3 0 wz--n- <199.00g 0 datavg 2 1 0 wz--n- 9.99g <5.00g [root@C8-196 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 cl lvm2 a-- <199.00g 0 /dev/sdb datavg lvm2 a-- <5.00g <5.00g /dev/sdc datavg lvm2 a-- <5.00g华丽丽的成功了!哈哈哈!
lvresize -r -l +100%FREE /dev/mapper/datavg-datalv&&df -Th &&lsblk
[root@C8-196 ~]# vgextend datavg /dev/sdb&&lvresize -r -l +100%FREE /dev/mapper/datavg-datalv&&df -Th &&lsblk
Physical volume '/dev/sdb' is already in volume group 'datavg'
Unable to add physical volume '/dev/sdb' to volume group 'datavg'
/dev/sdb: physical volume not initialized.
[root@C8-196 ~]# lvresize -r -l +100%FREE /dev/mapper/datavg-datalv&&df -Th &&lsblk
Size of logical volume datavg/datalv changed from <5.00 GiB (1279 extents) to 9.99 GiB (2558 extents).
Logical volume datavg/datalv successfully resized.
meta-data=/dev/mapper/datavg-datalv isize=512 agcount=4, agsize=327424 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1309696, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 1309696 to 2619392
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 876M 0 876M 0% /dev
tmpfs tmpfs 896M 0 896M 0% /dev/shm
tmpfs tmpfs 896M 17M 879M 2% /run
tmpfs tmpfs 896M 0 896M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 70G 2.3G 68G 4% /
/dev/mapper/cl-home xfs 127G 939M 126G 1% /home
/dev/sda1 xfs 1014M 197M 818M 20% /boot
tmpfs tmpfs 180M 0 180M 0% /run/user/0
/dev/mapper/datavg-datalv xfs 10G 4.0G 6.1G 40% /data
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 199G 0 part
├─cl-root 253:0 0 70G 0 lvm /
├─cl-swap 253:1 0 2G 0 lvm [SWAP]
└─cl-home 253:2 0 127G 0 lvm /home
sdb 8:16 0 5G 0 disk
└─datavg-datalv 253:3 0 10G 0 lvm /data
sdc 8:32 0 5G 0 disk
└─datavg-datalv 253:3 0 10G 0 lvm /data
总结
总体思路是
- 先将新挂载盘做成逻辑卷,接着老老实实用cp -av拷贝文件拷贝完文件踏踏实实把原来的分区干掉在原分区或磁盘上创建新的逻辑分区扩展逻辑分区命令lvresize -r -l +100%FREE /dev/mapper/datavg-datalv
上边踩过的坑
- 不要试图使用dd命令拷贝文件夹,逻辑卷和物理分区完全不是一回事最好对原盘的分区彻底搞一下,如果是独立盘,要把分区删掉最好逻辑卷往下摘物理盘是有顺序的
从卷组里剔除物理卷
先要从卷组中将被占用的空间挪走 将被占用的pe挪走
挪之前pe的个数要小于整个vg剩余的pe数
pvmove /dev/sdc 将pv上被占用的pe挪到同vg上的其他pv上挪完以后从vg中删掉pv vgreduce vof /dev/sdc再删除pv属性 pvremove /dev/sdc



