KVM/QEMU在線備份(1)

      網友投稿 1519 2025-04-01

      文章目錄

      Incremental backup

      簡介

      設備環境

      qemu 實時備份

      備份命令

      備份任務管理

      bitmap 命令

      遠程備份

      創建存儲結構

      創建iscsi目標

      保存退出

      其他

      查看block信息

      qemu4.2.0

      編譯

      qemu-monitor使用

      libvirt4.5

      gmp

      nettle-3.4

      libgnutls-3.5.18

      libvirt4.5

      錯誤處理

      日志模塊

      日志模塊

      virt-manager創建虛擬機

      Incremental backup

      簡介

      最近接到一個調研任務,kvm 虛擬機增量盤的實時備份。主要參考資料來源。[QEMU/KVM磁盤在線備份]

      主要思路:同步方式(sync)的四種模式。full,top,none,incremental四種方式的。

      none 實時I/O備份,該方式主要為將實時的I/O變化備份,不足,將所有的I/O備份,浪費大量的內存空間,且只備份了I/O的數據,其他數據沒有備份,該方案被放棄。

      incremental 增量備份。但是無法實現實時備份。

      后來又想到另一種方式:在創建的虛擬機的時候,將增量盤掛載到服務器,實現遠程備份。這種方法的缺點,對網絡要求較高,性能,穩定性較高,一旦網絡波動,虛擬機將奔潰。

      Rsync的遠程實時備份,暫時想到的一個思路,以后研究。rsync有多種遠程上傳方式。做個(標記)。

      設備環境

      客戶端: Ubuntu18.04 服務端: Ubuntu20.04

      1

      2

      qemu 實時備份

      備份命令

      none : real-time backup

      virsh qemu-monitor-command DOMAIN '{ "execute" : "drive-backup" , "arguments" : { "device" : "drive-ide0-0-0" , "sync" : "none" , "target" : "/opt/backup/none.img" } }'

      1

      bitmap : increment backup

      virsh qemu-monitor-command DOMAIN '{ "execute" : "drive-backup" , "arguments" : { "device" : "drive-virtio-disk0" , "sync" : "incremental" , "bitmap" : "bitmap0" , "target" : "/opt/backup/inc.0.qcow2" } }'

      1

      備份任務管理

      KVM/QEMU在線備份(1)

      查看備份任務

      virsh qemu-monitor-command DOMAIN --pretty '{ "execute": "query-block-jobs" }'

      1

      virsh qemu-monitor-command DOMAIN --hmp 'info block-jobs'

      1

      暫停備份任務

      virsh qemu-monitor-command DOMAIN '{ "execute": "block-job-cancel", "arguments": { "device": "drive-ide0-0-0", "force": true } }'

      1

      重置備份任務

      virsh qemu-monitor-command DOMAIN '{ "execute" : "block-job-pause", "arguments" : { "device" : "drive-virtio-disk0" } }'

      1

      停止備份任務

      virsh qemu-monitor-command DOMAIN '{ "execute": "block-job-cancel", "arguments": { "device": "drive-virtio-disk0", "force": true } }'

      1

      bitmap 命令

      創建bitmap

      virsh qemu-monitor-command DOMAIN { "execute": "block-dirty-bitmap-add", "arguments": {"node": "drive0","name": "bitmap0" }}

      1

      刪除bitmap

      virsh qemu-monitor-command DOMAIN { "execute": "block-dirty-bitmap-remove", "arguments": {"node": "drive0","name": "bitmap0"}}

      1

      重置 bitmap node

      virsh qemu-monitor-command DOMAIN { "execute": "block-dirty-bitmap-clear", "arguments": {"node": "drive0","name": "bitmap0"}}

      1

      遠程備份

      命令

      iscsi://[[%]@][:]//

      1

      iscsi://192.168.1.100:3260/iqn.2019-01.com.iaas/0

      1

      樣例

      virsh qemu-monitor-command DOMAIN '{ "execute" : "drive-backup" , "arguments" : { "device" : "drive-ide0-0-0" , "sync" : "incremental", "target" : "iscsi://192.168.1.100:3260/iqn.2019-01.com.iaas/0" } }'

      1

      參考資料:

      iscsi服務端搭建

      iscsi客戶端搭建

      客戶端搭建

      安裝

      apt install open-iscsi

      1

      設置服務開機啟動

      systemctl enable iscsi.service systemctl enable iscsid.service systemctl start iscsi.service systemctl start iscsid.service

      1

      2

      3

      4

      iscsi-name

      cat /etc/iscsi/initiatorname.iscsi

      1

      設置名稱:

      vim /etc/iscsi/initiatorname.iscsi InitiatorName=name systemctl restart iscsi.service

      1

      2

      3

      查找target

      iscsiadm -m discovery -t st -p 172.26.106.103:3260

      1

      登陸target

      iscsiadm -m node --targetname iqn.2020-06.wuqiang.iscis -p 172.26.106.103:3260 --login

      1

      設置全局單向認證

      discovery.sendtargets.auth.authmethod = CHAP discovery.sendtargets.auth.username = troila discovery.sendtargets.auth.password = 123456

      1

      2

      3

      重啟服務

      /etc/init.d/iscsid force-reload #強制重載 /etc/init.d/iscsid stop #停止服務 /etc/init.d/iscsid start #啟動服務 service iscsi restart #重啟服務 service iscsid restart #重啟服務 service open-iscsi status #查看狀態

      1

      2

      3

      4

      5

      6

      服務端搭建

      安裝

      apt install targetcli-fb

      1

      進入配置頁面

      targetcli

      1

      相關命令行

      - bookmarks action [bookmark] - cd [path] - clearconfig [confirm] - exit - get [group] [parameter...] - help [topic] - ls [path] [depth] - pwd - refresh - restoreconfig [savefile] [clear_existing] [target] [storage_object] - saveconfig [savefile] - sessions [action] [sid] - set [group] [parameter=value...] - status - version

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      創建物理磁盤存儲

      cd backstores/block create lun1 /dev/loop10

      1

      2

      創建文件存儲

      cd /backstores/fileio/ create lun1 /opt/fileio.img

      1

      2

      創建內存存儲

      cd ../ramdisk create rd0 10MB

      1

      2

      查看創建好的存儲資源

      /backstores> ls o- backstores ........................................................................................................... [...] o- block .............................................................................................. [Storage Objects: 1] | o- lun1 ...................................................................... [/dev/loop10 (50.0GiB) write-thru activated] | o- alua ................................................................................................. [ALUA Groups: 1] | o- default_tg_pt_gp .................................................................... [ALUA state: Active/optimized] o- fileio .............................................................................................. [Storage Objects: 1] | o- lun1 ................................................................... [fileio.img (20.0GiB) write-back deactivated] | o- alua ................................................................................................. [ALUA Groups: 1] | o- default_tg_pt_gp .................................................................... [ALUA state: Active/optimized] o- pscsi ................................................................................................ [Storage Objects: 0] o- ramdisk .............................................................................................. [Storage Objects: 0]

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      cd /iscsi/ create #自動創建用戶 create iqn.2020-06.iscsi:sn.20200623 #創建指定用戶

      1

      2

      3

      關聯后端存儲

      cd iqn.2020-06.iscsi:sn.20200623/tpg1/luns/ create /backstores/block/lun1 #為后端存儲路徑

      1

      2

      配置ACL(訪問控制列表)

      cd ../acls create iqn.2020-06.wuqiang.iscis #客戶端用戶名

      1

      2

      配置CHAP認證-全局單向認證

      cd /iscsi/ get discovery_auth #查看配置信息 set discovery_auth enable=1 set discovery_auth userid=troila set discovery_auth password=123456 get discovery_auth enable userid password #查看是否與設置的相同

      1

      2

      3

      4

      5

      6

      exit

      1

      創建硬盤

      dd if=/dev/vda5 of=/opt/block.img bs=1G count=50 #創建 sudo losetup /dev/loop10 /opt/block.img #掛載為設備 /dev/loop10 fdisk /dev/loop10 #創建邏輯分區 mkfs -t ext4 /dev/loop10 #格式化

      1

      2

      3

      4

      創建文件

      dd if=/dev/vda5 of=/opt/file.img bs=1G count=20 #創建 mkfs -t ext4 /opt/file.img #格式化

      1

      2

      查看block信息

      virsh qemu-monitor-command DOMAIN --hmp info block

      1

      drive-ide0-0-0 (#block971): /opt/qcow2/wuqiang-151-extra.qcow2 (backup-top) Attached to: ide0-0-0 Cache mode: writeback Backing file: /opt/qcow2/wuqiang-151-extra.qcow2 (chain depth: 2)

      1

      2

      3

      4

      drive-ide0-0-0 為 塊信息名稱

      qemu4.2.0

      編譯

      卸載之前安裝的qemu

      apt remove qemu*

      1

      源碼路徑:

      https://download.qemu.org/

      1

      ubuntu編譯

      wget https://download.qemu.org/qemu-4.2.0.tar.xz tar xvf qemu-4.2.0.tar.xz cd qemu-4.2.0 ./configure --prefix=/usr --target-list=x86_64-softmmu --enable-guest-agent --enable-libusb --enable-spice --enable-libiscsi make && make install

      1

      2

      3

      4

      5

      檢測:

      virsh version

      1

      2

      輸出為如下所示:Running hypervisor: QEMU 4.2.0 則,安裝成功

      Compiled against library: libvirt 4.0.0 Using library: libvirt 4.0.0 Using API: QEMU 4.0.0 Running hypervisor: QEMU 4.2.0

      1

      2

      3

      4

      注意:

      ./configure 配置完成之后,輸出配置列表注意查看:agent,libiscsi,libusb,kvm,spice是否顯示yes。

      1

      qemu-monitor使用

      進入monitor

      qemu-system-x86_64 -enable-kvm -m 512 -smp 2 -hda vm-img-path -boot c -vnc :1 -monitor stdio

      1

      dirve_backup介紹

      help drive_backup

      1

      drive_backup [-n] [-f] [-c] device target [format] -- initiates a point-in-time copy for a device. The device's contents are copied to the new image file, excluding data that is written after the command is started. The -n flag requests QEMU to reuse the image found in new-image-file, instead of recreating it from scratch. The -f flag requests QEMU to copy the whole disk, so that the result does not need a backing file. The -c flag requests QEMU to compress backup data (if the target format supports it).

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      樣例:

      drive_backup -f ide0-hd0 /opt/qcow2/151_backup.qcow2 qcow2

      1

      查看備份任務:

      info block-jobs

      1

      查看device:

      info block

      1

      任務取消:

      block_job_cancel [-f] device -- stop an active background block operation (use -f if you want to abort the operation immediately instead of keep running until data is in sync)

      1

      2

      3

      block_job_cancel ide0-hd0

      1

      libvirt4.5

      gmp

      wget https://gmplib.org/download/gmp/gmp-6.0.0.tar.xz tar xvf gmp-6.0.0.tar.xz cd gmp-6.0.0/ ./configure && make && make install

      1

      2

      3

      4

      nettle-3.4

      wget ftp.gnu.org/gnu/nettle/nettle-3.4.tar.gz tar xvf nettle-3.4.tar.gz cd nettle-3.4 && mkdir build && cd build/ ../configure --prefix=/usr --disable-openssl --enable-shared --enable-mini-gmp make && make install

      1

      2

      3

      4

      5

      libgnutls-3.5.18

      wget https://ftp.gnutls.org/gcrypt/gnutls/v3.5/gnutls-3.5.18.tar.xz tar xvf gnutls-3.5.18.tar.xz cd gnutls-3.5.18 ./configure --enable-shared --with-included-libtasn1 --with-included-unistring --without-p11-kit && make && make install

      1

      2

      3

      4

      libvirt4.5

      wdget https://libvirt.org/sources/libvirt-4.5.0.tar.xz tar xvf libvirt-4.5.0.tar.xz cd libvirt-4.5.0 ./autogen.sh ./configure --prefix=/usr --without-apparmor-profiles --with--storage-iscsi --with-bash-completion --with-readline --with-remote make && make install

      1

      2

      3

      4

      5

      6

      依賴庫下載

      apt install libgmp-dev apt install nettle-dev apt install libnl-3-dev apt install libnl-route-3-dev apt install libxml2-dev apt install libyajl-dev apt install xsltproc apt install libdevmapper-dev apt install libpciaccess-dev apt install uuid-dev apt install libreadline-dev apt install bash-completion

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      錯誤處理

      1.錯誤一

      virsh: /usr/lib/x86_64-linux-gnu/libvirt.so.0: version `LIBVIRT_4.4.0' not found (required by virsh) virsh: /usr/lib/x86_64-linux-gnu/libvirt.so.0: version `LIBVIRT_4.5.0' not found (required by virsh) virsh: /usr/lib/x86_64-linux-gnu/libvirt.so.0: version `LIBVIRT_PRIVATE_4.5.0' not found (required by virsh)

      1

      2

      3

      解決方案

      cd /usr/lib/x86_64-linux-gnu/ rm -rf libvirt.so.0*

      1

      2

      2.錯誤二

      virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_PRIVATE_4.0.0' not found (required by /usr/lib/x86_64-linux-gnu/libvirt-lxc.so.0) virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_PRIVATE_4.0.0' not found (required by /usr/lib/x86_64-linux-gnu/libvirt-qemu.so.0)

      1

      2

      解決方案

      rm -rf libvirt-lxc.so.0* rm -rf libvirt-qemu.so.0*

      1

      2

      日志模塊

      vim /etc/libvirt/libvirtd.conf log_level = 3 #設置日志級別 log_outputs="3:file:/var/log/libvirt/libvirtd.log" #日志輸出文件 /etc/init.d/libvirtd restart #重啟服務

      1

      2

      3

      4

      相關錯誤:

      .so.0: version `LIBVIRT_PRIVATE_4.0.0' not found (required by /usr/lib/x86_64-linux-gnu/libvirt-lxc.so.0) virsh: /usr/lib/libvirt.so.0: version `LIBVIRT_PRIVATE_4.0.0' not found (required by /usr/lib/x86_64-linux-gnu/libvirt-qemu.so.0)

      1

      2

      解決方案:

      rm -rf libvirt-lxc.so.0* rm -rf libvirt-qemu.so.0*

      1

      2

      日志模塊

      vim /etc/libvirt/libvirtd.conf log_level = 3 #設置日志級別 log_outputs="3:file:/var/log/libvirt/libvirtd.log" #日志輸出文件 /etc/init.d/libvirtd restart #重啟服務

      1

      2

      3

      4

      virt-manager創建虛擬機

      相關錯誤:USB redirection is not supported by this version of QEMU 解決方案:移除USB redirection1,USB redirection2

      1

      2

      KVM 虛擬化

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:陶慧剛| OKR到底要解決什么問題,不是為了OKR而OKR(陶慧慧簡歷)
      下一篇:SUMIFS 多條件求和函數
      相關文章
      伊人久久亚洲综合影院首页| 中文字幕 亚洲 有码 在线| 亚洲JIZZJIZZ妇女| 亚洲欧美日韩综合俺去了| 亚洲熟妇无码久久精品| 亚洲精品视频免费在线观看| 亚洲精品视频免费在线观看| 亚洲电影在线免费观看| 亚洲人成网站日本片| 亚洲人成影院午夜网站| 国产成人精品日本亚洲直接| 亚洲伊人久久大香线蕉影院| ass亚洲**毛茸茸pics| 亚洲综合av一区二区三区| 亚洲国产美女精品久久久| WWW亚洲色大成网络.COM| 亚洲?V乱码久久精品蜜桃| 亚洲精品视频在线看| 亚洲熟妇丰满多毛XXXX| 亚洲AV午夜成人影院老师机影院| 亚洲s色大片在线观看| 亚洲高清在线视频| 亚洲成a人片在线观看中文!!!| 亚洲一级大黄大色毛片| 亚洲色成人四虎在线观看| 最新亚洲人成无码网站| 国产精品亚洲综合专区片高清久久久| 中文字幕一精品亚洲无线一区| 亚洲精品乱码久久久久久久久久久久| 久久精品国产99精品国产亚洲性色| 亚洲欧洲日产国码久在线观看 | 亚洲第一精品电影网| 亚洲国产成人久久77| 亚洲综合色婷婷在线观看| 国产成人高清亚洲一区久久| 久久久久国产亚洲AV麻豆| 亚洲国产成人精品无码区在线观看 | 日本亚洲免费无线码 | 精品久久久久久亚洲综合网| 红杏亚洲影院一区二区三区| 亚洲AV无码专区亚洲AV伊甸园|