LVM 移機備忘
其實工廠主機又變快了.....好像常常看到我再給他加速.....以前一直傳聞說一台爛爛的linux主機跑個apache都可以很順暢,前幾天換了主機才知道這傳聞根本.....,主機的效能明顯還是受到CPU和硬碟讀取速度的影響。感覺前一句好像廢話一樣,但是我是在舊主機一直調整下,相信傳聞是真實的狀態下一直調,還是調不出一個好結果,常常被裕藍的老闆吐槽網站那麼慢.....
其實移機基本不難,檔案形式的複製一下就好,我比較擔心的是三顆硬碟組成的LVM,因為沒有其他空間把160G的檔案移出了,只好硬著頭皮嘗試直接把三顆硬碟直接移到另一台主機,依靠著一個小小的config檔,沒有過的經驗的確令人緊張,深怕轉移失敗資料都消失哩。
產生LVM的conf檔其實很簡單
# vgcfgbackup
Volume group "homeVG" successfully backed up.
設定檔會產生出來在/etc/lvm/backup/homeVG,就依靠著個檔案定生死哩,來還原囉!!
# vgcfgrestore -f /etc/lvm/backup/homeVG -n homeVG homeVG
結果當然是成功~有哩經驗之後,以後就會大膽的作哩!!
备份 某个pv损坏:
分区表备份: |
系统情况:Red Hat Enterprise Linux Server release 6.0,lvm2,ext4
原来有一个lvm分区/dev/data/ftproot挂载到/work目录下的。 周一的时候由于调休,不知道那个BT直接关机造成data_ftproot的lvm丢失
下是记录下的处理过程:
- [root@localhost lvm]# vgcfgrestore -f /etc/lvm/backup/data -t /dev/sda3
- Test mode: Metadata will NOT be updated.
- Couldn't find device with uuid h6t9V2-Oi08-F5kw-U2G5-vRDW-1WdJ-1awgnU.
- '/etc/lvm/backup/data' does not contain volume group 'sda3'.
- Restore failed.
- [root@localhost lvm]# pvcreate -u h6t9V2-Oi08-F5kw-U2G5-vRDW-1WdJ-1awgnU --restorefile /etc/lvm/archive/data_00002.vg /dev/sda3
- Couldn't find device with uuid h6t9V2-Oi08-F5kw-U2G5-vRDW-1WdJ-1awgnU.
- Physical volume "/dev/sda3" successfully created
- [root@localhost lvm]# vgcfgrestore data
- Restored volume group data
- [root@localhost lvm]# vgscan && vgscan && lvscan
- Reading all physical volumes. This may take a while...
- Found volume group "data" using metadata type lvm2
- Found volume group "vg_localhost" using metadata type lvm2
- Reading all physical volumes. This may take a while...
- Found volume group "data" using metadata type lvm2
- Found volume group "vg_localhost" using metadata type lvm2
- inactive '/dev/data/ftproot' [70.00 GiB] inherit
- ACTIVE '/dev/vg_localhost/lv_root' [21.55 GiB] inherit
- ACTIVE '/dev/vg_localhost/lv_swap' [1.97 GiB] inherit
- You can now display the logical volumes.
- [root@localhost ~]# lvs -a -o +devices
- LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices
- ftproot data -wi--- 70.00g /dev/sda3(0)
- lv_root vg_localhost -wi-ao 21.55g /dev/sda2(0)
- lv_swap vg_localhost -wi-ao 1.97g /dev/sda2(5518)
- [root@link-07 backup]# lvchange -ay /dev/VG/stripe
- [root@localhost ~]# lvchange -ay /dev/data/ftproot
- [root@localhost ~]# lvs -a -o +devices
- LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices
- ftproot data -wi-a- 70.00g /dev/sda3(0)
- lv_root vg_localhost -wi-ao 21.55g /dev/sda2(0)
- lv_swap vg_localhost -wi-ao 1.97g /dev/sda2(5518)
- [root@localhost ~]# mount -t ext4 /dev/data/ftproot /work/
- mount: wrong fs type, bad option, bad superblock on /dev/mapper/data-ftproot,
- missing codepage or helper program, or other error
- In some cases useful info is found in syslog - try
- dmesg | tail or so
- [root@localhost ~]# dmesg | tail -10
- RPC: Registered tcp transport module.
- RPC: Registered tcp NFSv4.1 backchannel transport module.
- SELinux: initialized (dev rpc_pipefs, type rpc_pipefs), uses genfs_contexts
- SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
- SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
- SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
- eth3: no IPv6 routers present
- eth1: no IPv6 routers present
- EXT4-fs (dm-2): VFS: Can't find ext4 filesystem
至此,lvm是恢复了,但文件系统看样子是没有办法恢复了。参考“ext3 文件系统超级块损坏的修复”对ext4不起作用,我觉得对ext3/ext2估计都差不多。
事打电话询问LVM故障的处理办法,其实我对LVM也是一知半解,只是恰好在用户现场解决过几次有关LVM的故障。
这次故障的发生是因为不小心,把grub的信息写入到了阵列设备上,而阵列设备是用来做LVM的,导致的结果是pvscan可以得到pv信息,lvscan也能得到lv信息,但是 vgscan却不能。 使用vgcfgrestore命令恢复后,正常了。为了重现用户的现象,我做了另外一个实验,不是vg信息找不到,而是找不到对应 uuid号的设备,过程如下:
创建pv,vg,lv
[root@lancy ~]# pvcreate /dev/mdp0 Physical volume "/dev/mdp0" successfully created [root@lancy ~]# vgcreate vg01 /dev/mdp0 Volume group "vg01" successfully created [root@lancy ~]# lvcreate -n lv01 -L+200M vg01 Logical volume "lv01" created [root@lancy ~]# mkfs.ext3 /dev/mapper/vg01-lv01 -m 0 [root@lancy ~]# mount /dev/mapper/vg01-lv01 /misc [root@lancy ~]# cp mdadm-2.5.2-1.i386.rpm /misc/ [root@lancy ~]# umount /misc
2)做一个破坏者
[root@lancy ~]# dd if=/dev/zero of=/dev/mdp0 bs=512 count=3 3+0 records in 3+0 records out 1536 bytes (1.5 kB) copied,7.6469e-05 秒,20.1 MB/秒 [root@lancy ~]# pvscan No matching physical volumes found [root@lancy ~]# vgscan Reading all physical volumes. This may take a while... No volume groups found pv,vg,lv都找不到了,但是vg01-lv01这个设备还是存在的,而且也能mount。不过估计重启后就找不到了。于是恢复。
尝试老办法
[root@lancy ~]# vgcfgrestore -f /etc/lvm/backup/vg01 -n vg01 -t /dev/mdp0 Test mode: Metadata will NOT be updated. Couldn't find device with uuid 'fPsp4D-aaxu-YMGZ-gqGn-sbUq-fZE0-YnCbwz'. Couldn't find all physical volumes for volume group vg01. Restore failed.
看来vgcfgrestore不是万能的,怎么办?
重写uuid
[root@lancy bin]# pvcreate –uuid fPsp4D-aaxu-YMGZ-gqGn-sbUq-fZE0-YnCbwz –restorefile /etc/lvm/archive/vg01_00001.vg /dev/mdp0 Couldn’t find device with uuid ‘fPsp4D-aaxu-YMGZ-gqGn-sbUq-fZE0-YnCbwz’. Physical volume “/dev/mdp1” successfully created [root@lancy bin]# vgcfgrestore vg01 Restored volume group vg01 [root@lancy bin]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% lv01 vg01 -wi— 100.00M [root@lancy bin]# vgscan Reading all physical volumes. This may take a while… Found volume group “vg01” using metadata type lvm2
哈哈,到此搞定!
Linux逻辑卷的管理
Linux逻辑卷的管理
(1)Linux系统初始化LVM
vgscan
(2)创建物理卷
pvcreate /dev/sda1—————物理磁盘分区路径
(2)创建卷组
vgcreata vg0 /dev/sda1
| |________________物理磁盘分区路径
|_____________________逻辑卷组名称
(3)创建逻辑卷
lvcreate -n backup1 -L 500G vg0
| | |_______逻辑卷组
| |__________逻辑卷大小
|___________________逻辑卷名
(4)格式化逻辑卷
mkfs.ext3 /dev/vg0/backup1
(5)迁移逻辑卷vg信息
1. 在主机A上
vgcfgbackup vg0
此命令将vg0的信息备份下来,产生一个/etc/lvm/backup/vg0文件,将此文件传到主机B上,注意此文件的权限,它默认是300,属主和属组都是root,如果你不是root用户,需要改变此文件的权限才能下载。
2.导入vg信息
mkdir /etc/lvm/backup 在/etc/lvm下创建目录backup
将主机A上的vg0 文件传到/etc/lvm/backup目录下
vgcfgrestore vg0 在主机B上将vg0导入
vgchange –ay 激活卷组
转载至