前言
本次文章的機緣來自于這次在做的qb的Oracle備庫部分的功能违寿,需要提供RedHat7.4秆吵,Oracle數(shù)據(jù)庫以及MySQL數(shù)據(jù)庫的qcow2磁盤鏡像亏掀。由于RedHat7.4的鏡像已經(jīng)有了捂贿,今天來講一下怎么制作非OS數(shù)據(jù)盤的qcow2磁盤鏡像捞附。
整體流程介紹
一個qcow2鏡像的生成是很容易的巾乳,不過如何格式化以及填充數(shù)據(jù),就會稍顯麻煩鸟召,因為需要在虛擬機而不是宿主機中進行胆绊。
當然使用guestmount的話,是可以將qcow2的鏡像文件直接mount到宿主機的欧募,但是這要求你的鏡像是OS鏡像压状,如果不是的話,就愛莫能助了跟继。
因此我們這次的流程种冬,簡單說就是:
- 創(chuàng)建qcow2鏡像
- 將鏡像attach到vm中,假設為sde設備
- 在vm中格式化sde(注意OS的版本舔糖,不同版本的格式化可能是不兼容的)
- 將sde mount到隨意一個路徑娱两,這里假設為/mnt/Ethan
- 通過rsync命令將想要的數(shù)據(jù)傳輸?shù)皆撃夸浿?/li>
- umount該目錄
- 在宿主機中detach該鏡像
具體命令的執(zhí)行
1. 創(chuàng)建qcow2鏡像
在當前目錄下創(chuàng)建一個預期大小為20G的qcow2鏡像,命名為:mysql-5.7.21.qcow2
宿主機
qemu-img create -f qcow2 ./mysql-5.7.21.qcow2 20G
2. 將鏡像attach到vm中
通過以下命令剩盒,將mysql-5.7.21.qcow2鏡像attach到sun_xxx這臺虛擬機中谷婆,并作為sde設備慨蛙。此處注意,要選擇虛擬機中尚未被占用的盤符
宿主機
virsh attach-disk sun_xxx /qbackup/repo/Ethan/oracle-10.2.0.1.0.qcow2 sda --subdriver qcow2 --serial sda
3. 在vm中格式化sda
虛擬機
mkfs.xfs -f /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_sda
4. 將sda設備mount到vm的/mnt/Ethan路徑
虛擬機
mount /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_sda /mnt/Ethan/
5. 通過rsync命令將想要的數(shù)據(jù)傳輸?shù)皆撃夸浿?/h2>
rsync可以完全替代掉scp纪挎,-a可以保證把對應的用戶權限也一起復制過來
在我這里的話期贫,60.5下的/mnt/Ethan目錄,里面的數(shù)據(jù)是從zfs的volume里面mount過來的异袄,不過和主題無關通砍,就不講太多了。
虛擬機
rsync -avP root@10.10.60.5:/mnt/Ethan/ /mnt/Ethan
6. umount該目錄
umount /mnt/Ethan/
7. 在宿主機中detach該鏡像
virsh detach-disk sun_xxx sda