在某些情況下,將卷組從一個系統移動到另一個系統可能是我們最需要的。下面看一下如何將一個包含多個磁盤的卷組從一臺服務器移動到另一臺服務器,而不會丟失任何文件。
環 境
兩臺Centos8 虛擬機
第一臺名字為:server1 , 第二臺名字為:server2
第一臺Centos8額外添加4塊硬盤。當配置完邏輯卷之后,用來移動到另一個Centos8系統中使用的。
第一臺Centos8 IP: 192.168.43.131
第二臺Centos8 IP: 192.168.43.137
創建pv、vg、lv并掛載,復制數據到卷里面
下面4個硬盤創建為物理卷
- [root@server1 ~]# fdisk -l|grep sd
- Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
- Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
- Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors
- Disk /dev/sdd: 20 GiB, 21474836480 bytes, 41943040 sectors
- [root@server1 ~]# pvcreate /dev/sd[a-d]
- Physical volume "/dev/sda" successfully created.
- Physical volume "/dev/sdb" successfully created.
- Physical volume "/dev/sdc" successfully created.
- Physical volume "/dev/sdd" successfully created.
創建卷組,卷組名稱為vg_data
- [root@server1 ~]# vgcreate vg_data /dev/sd[a-d]
- Volume group "vg_data" successfully created
- [root@server1 ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- cl 1 2 0 wz--n- <19.00g <2.00g
- vg_data 4 0 0 wz--n- 79.98g 79.98g
下面創建邏輯卷,卷的名稱為lvdata,空間容量使用所有的
- [root@server1 ~]# lvcreate -l +100%FREE -n lvdata vg_data
- WARNING: xfs signature detected on /dev/vg_data/lvdata at offset 0. Wipe it? [y/n]: y
- Wiping xfs signature on /dev/vg_data/lvdata.
- Logical volume "lvdata" created.
- [root@server1 ~]# lvs -o +devices
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
- root cl -wi-ao---- 15.00g /dev/nvme0n1p2(512)
- swap cl -wi-ao---- 2.00g /dev/nvme0n1p2(0)
- lvdata vg_data -wi-a----- 79.98g /dev/sda(0)
- lvdata vg_data -wi-a----- 79.98g /dev/sdb(0)
- lvdata vg_data -wi-a----- 79.98g /dev/sdc(0)
- lvdata vg_data -wi-a----- 79.98g
創建掛載點、格式化分區、掛載分區、寫入數據:
- [root@server1 ~]# mkdir /data
- [root@server1 ~]# mkfs.xfs /dev/vg_data/lvdata
- meta-data=/dev/vg_data/lvdata isize=512 agcount=4, agsize=5241856 blks
- = sectsz=512 attr=2, projid32bit=1
- = crc=1 finobt=1, sparse=1, rmapbt=0
- = reflink=1
- data = bsize=4096 blocks=20967424, imaxpct=25
- = sunit=0 swidth=0 blks
- naming =version 2 bsize=4096 ascii-ci=0, ftype=1
- log =internal log bsize=4096 blocks=10238, version=2
- = sectsz=512 sunit=0 blks, lazy-count=1
- realtime =none extsz=4096 blocks=0, rtextents=0
- [root@server1 ~]# mount /dev/vg_data/lvdata /data
- [root@server1 ~]# df -h /data
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/vg_data-lvdata 80G 604M 80G 1% /data
- [root@server1 ~]# dd if=/dev/zero of=/data/disk.img bs=1M count=1024
- 1024+0 records in
- 1024+0 records out
- 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 4.63086 s, 232 MB/s
- [root@server1 ~]# touch /data/file{1..10}.txt
卸載、停用邏輯卷和卷組
下面卸載分區
- [root@server1 ~]# umount /data
停用邏輯卷和卷組:
- [root@server1 ~]# lvchange -an /dev/vg_data/lvdata
- [root@server1 ~]# vgchange -an vg_data
- 0 logical volume(s) in volume group "vg_data" now active
- [root@server1 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root cl -wi-ao---- 15.00g
- swap cl -wi-ao---- 2.00g
- lvdata vg_data -wi------- 79.98g
停用邏輯卷之后,使用lvs命令查看邏輯卷,可看到lvdata卷的屬性中a屬性沒有了,表示沒有激活。
導出卷組
在server1中導出卷組
- [root@server1 ~]# vgexport vg_data
- Volume group "vg_data" successfully exported
導出之后,我們需要關閉server1系統。然后復制它的磁盤到server2中。
復制server1的磁盤到server2目錄中
將server1的四個磁盤復制到server2虛擬機的目錄中。下面可以看到帶有*-000002.vmdk的文件,這是因為我做了快照。需要一起復制到server2中。
復制到server2目錄中:
打開server2的“編輯虛擬機設置”
添加現有虛擬磁盤
打開server2的電源。如果發現開機無法引導系統,開機按f2進入bios,設置啟動項,將存在系統的磁盤順序調到最頂。
導入卷組
server2開機之后,使用pvscan掃描一下,新添加的磁盤是否可以檢測到:
- [root@server2 ~]# pvscan
- PV /dev/nvme0n1p2 VG cl lvm2 [<19.00 GiB / 0 free]
- PV /dev/sda is in exported VG vg_data [<20.00 GiB / 0 free]
- PV /dev/sdb is in exported VG vg_data [<20.00 GiB / 0 free]
- PV /dev/sdc is in exported VG vg_data [<20.00 GiB / 0 free]
- PV /dev/sdd is in exported VG vg_data [<20.00 GiB / 0 free]
- Total: 5 [98.98 GiB] / in use: 5 [98.98 GiB] / in no VG: 0 [0 ]
下面使用vgs命令查看一下,可以看到vg_data卷組,但是可以看到屬性,有一個x屬性,這代表是外部的卷組。
- [root@server2 ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- cl 1 2 0 wz--n- <19.00g 0
- vg_data 4 1 0 wzx-n- 79.98g 0
- [root@server2 ~]#
下面使用vgimport命令導入vg_data卷組:
- [root@server2 ~]# vgimport vg_data
- Volume group "vg_data" successfully imported
可以看到x屬性消失了。
激活卷組
下面使用lvs命令查看一下lvdata邏輯卷的屬性:
- [root@server2 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root cl -wi-ao---- <17.00g
- swap cl -wi-ao---- 2.00g
- lvdata vg_data -wi------- 79.98g
發現沒有a, o這兩個屬性。a表示激活、o表示是否掛載。
下面激活卷組:
- [root@server2 ~]# vgchange -ay vg_data
- 1 logical volume(s) in volume group "vg_data" now active
- [root@server2 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root cl -wi-ao---- <17.00g
- swap cl -wi-ao---- 2.00g
- lvdata vg_data -wi-a----- 79.98g
可以看到a屬性顯示了。
掛載文件系統
首先創建掛載點,然后掛載文件系統:
- [root@server2 ~]# mkdir /data
- [root@server2 ~]# mount /dev/vg_data/lvdata /data/
- [root@server2 ~]# df -h /data
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/vg_data-lvdata 80G 1.6G 79G 2% /data
再使用lvs命令查看一下,發現lvdata邏輯卷的o屬性也顯示了。
- [root@server2 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root cl -wi-ao---- <17.00g
- swap cl -wi-ao---- 2.00g
- lvdata vg_data -wi-ao---- 79.98g
下面是導入之后,物理卷、卷組、邏輯卷的內容:
總 結
就這樣我們已經成功完成了將卷組從一個系統移動到另一個系統的工作。
原文鏈接:https://mp.weixin.qq.com/s/_-s4P2v_PywEOw_oIszu6A