2012年11月15日 星期四
KVM with LVM snapshot
一般來說, 如果使用 KVM來進行VM的管理,多半採用
virsh snapshot-create (VM name)
virsh snapshot-create-as (VM name) (snapshot name)
virsh snapshot-list (VM name) #查到snapshot name
virsh snapshot-revert (VM name) (snapshot name)
但這種方式,只適用在qcow2的vm image上
若VM的disk 使用raw type, 那便沒辦法了
於是, LVM的idea一般人都會想到, 利用 LVM的logical volumn當成VM raw disk
再利用snapshot 搭配 rollback(lvconvert --merge),可以進行類似KVM snapshot功能
step 1)先在Host的VG建立一個LV
lvcreate -L 100G -n lv_test /dev/VolGroup
step 2)建立一個VM
virt-install -n vm_test -r 1024 --vcpus=1 --disk path=/dev/VolGroup/lv_test .....(略)
安裝完成後,用root登入,然後將VM關掉
step 3)測試VM raw disk snapshot
take snapshots:
time line t0 -----> t1 -----> t2 -------> t3 ------> t4
take snapshot lv_test_ss1 lv_test_ss2
[action in VM] init 0 boot touch 1.txt boot rm *
rm A.txt touch 2.txt
init 0 init 0
[files at ~/.] A.txt B.txt 2.txt
B.txt 1.txt
rollback:
time line t5 -----> t6 -----> t7 -------> t8
rollback lv_test_ss1 lv_test_ss2
[action in VM] boot init 0 boot
[files at ~/.] 2.txt A.txt A.txt B.txt
B.txt B.txt 1.txt
(回到t0) (回到t2)
take snapshot lv_test_ss1)
lvcreate -L 50G -s -n lv_test_ss1 /dev/VolGroup/lv_test
take snapshot lv_test_ss2)
lvcreate -L 50G -s -n lv_test_ss2 /dev/VolGroup/lv_test
rollback to snapshot lv_test_ss1)
lvconvert --merge /dev/VolGroup/lv_test_ss1
rollback to snapshot lv_test_ss2)
lvconvert --merge /dev/VolGroup/lv_test_ss2
註:1)對於snapshot本身不能再對它取snapshot,也就是說,下面是無效指令
lvcreate -L 50G -s -n lv_test_xx /dev/VolGroup/lv_test_ss1
2)上例來看,rollback 至 lv_test_ss1時, 檔案回復至當時最原始的A.txt以及B.txt
rollback 至 lv_test_ss2時, 檔案回復至剛做lv_test_ss2前的B.txt以及1.txt
3)看來在進行snapshot rollback時, 對於中間的snapshot的內容,也會一一進行追蹤
不會導致檔案的遺失. 例如上例中, 在rollback至lv_test_ss1時,早已沒有了1.txt
但在進行lv_test_ss2 rollback時,卻還是正確的檔案數量(也沒受t4 rm *的影響)
4)lvconvert --merge似乎是RHEL/CentOS 6之後才有提供
5)如果執行 lvconvert --merge出現warning "Can't merge over open origin volume"時,那你可能會需要對LV做 deactivate and activate的動作
lvchange -an /dev/VolGroup/lv_test ##deactivate
lvchange -ay /dev/VolGroup/lv_test ##activate
6)一般如果你直接對snapshot做lvremove的動作, 那所有的異動都會進到原本的LV
訂閱:
張貼留言 (Atom)
文章分類
- 爬山 (3)
- 參考文章 (3)
- 鳥事 (5)
- 報稅 (1)
- AIX (2)
- ajax (1)
- BCB (3)
- C/C++ (2)
- cloudera (3)
- DISK (1)
- ftp (1)
- Fuse (2)
- gdb (2)
- hadoop (13)
- hdfs (8)
- HPC (2)
- hypertable (12)
- iOS (1)
- iscsi (1)
- JAVA (2)
- KFS (5)
- kickstart (1)
- KVM (2)
- LAMP (2)
- linux (2)
- Lion (1)
- LVM (2)
- mapreduce (3)
- mpi (3)
- mpich2 (4)
- msgpack (2)
- mysql (2)
- nfs (1)
- openmp (2)
- OS (1)
- OSX (2)
- others (5)
- PBS (1)
- performance_tuning (3)
- php (3)
- phplist (3)
- programming (27)
- REST (2)
- RHCA (6)
- rhel (13)
- rhel6 (4)
- scp (1)
- shell_scripts (2)
- snowleopard (2)
- Solaris (6)
- ssh (1)
- syslog (1)
- t-442-1 (4)
- torque (1)
- ubuntu (2)
- VNC (1)
- watercolor (5)
- windows (1)
- yum (1)
沒有留言:
張貼留言