No menu items!
No menu items!
More

    [KVM] Tạo snapshot trong KVM

    Trước khi cài đặt, config hoặc nâng cấp máy ảo, mình muốn snapshot để nếu khi có sự cố xảy ra trong quá trình triển khai chúng ta có thể trả trạng thái của máy ảo về thời điểm chưa gặp lỗi khi triển khai. KVM (Kernel Virtual Machine) hỗ trợ cả live snapshot và shutdown máy ảo. Snapshot phải chạy trên định dạng đĩa qcow2.

    Cú pháp tạo snapshot trong Linux cho KVM.

    Lệnh virsh có thể tạo ảnh chụp nhanh từ file XML bằng cách sử dụng virsh snapshot-create hoặc trực tiếp từ một tập hợp các tùy chọn bằng cách sử dụng virsh snapshot-create-as.

    virsh snapshot-create-as --domain {VM-NAME} --name "{SNAPSHOT-NAME}"

    Where,

    • –domain {VM-NAME}: Tên của máy ảo
    • –name “{SNAPSHOT-NAME}”:Tên của snapshot

    Ví dụ

    Hãy list danh sách máy ảo hiện có và mình chọn máy ảo có tên kvm-test1 làm ví dụ.

    $ virsh list --all
     Id   Name        State
    ---------------------------
     1    kvm-test1   running
     2    kvm-test2   running
     3    kvm-test3   running
     4    kvm-test4   running
     5    kvm-test5   running

    Để xem các snapshot hiện có (nếu có) cho máy ảo có tên kvm-test1, hãy nhập:

    $ virsh snapshot-list --domain kvm-test1

    Hiện tại mình chưa tạo snapshot cho kvm-test1 nên danh sách snapshot của máy ảo này trống rỗng.

     Name   Creation Time   State
    -------------------------------

    Bây giờ mình sẽ tiến hành quy trình snapshot cho máy ảo kvm-test1. Trước tiên, hãy đảm bảo máy ảp kvm-test1 sử dụng disk qcow2.

    virsh dumpxml kvm-test1 | grep -i qemu

    Kết quả sẽ có nội dụng như dưới, máy ảo kvm-test1 đang chạy disk với type là qcow2.

    <driver name='qemu' type='raw'/>
    <driver name='qemu' type='qcow2'/>

    Đầu tiên hãy shutdown máy ảo.

    virsh shutdown kvm-test1

    Sử dụng lệnh dưới để tạo snapshot đầu tiên.

    virsh snapshot-create-as --domain kvm-test1 \
    --name "14Dec2022_S1" \
    --description "My First Snapshpot"

    Sau khi snapshot xong, bạn có thể start lại máy ảo để tiếp tục sử dụng.

    virsh start kvm-test1

    Để xem các bản snapshot đã được chụp thành công, sử dụng lệnh dưới.

    $ virsh snapshot-list --domain kvm-test1
     Name           Creation Time               State
    -----------------------------------------------------
     14Dec2022_S1   2022-12-14 13:57:11 +0000   running

    Hoặc để xem thông tin 1 bản snapshot, bạn hãy sử dụng lệnh dưới.

    $ virsh snapshot-info --domain kvm-test1 --snapshotname 14Dec2022_S1
    Name:           14Dec2022_S1
    Domain:         kvm-test1
    Current:        yes
    State:          running
    Location:       internal
    Parent:         -
    Children:       0
    Descendants:    0
    Metadata:       yes

    Cú pháp restore snapshot cho KVM.

    Đầu tiên hãy shutdown máy ảo cần restorage.

    virsh shutdown --domain kvm-test1

    Sử dụng lệnh dưới để tiến hành restore bản snapshot 14Dec2022_S1 cho máy ảo kvm-test1.

    virsh snapshot-revert --domain kvm-test1 --snapshotname 14Dec2022_S1 --running

    Cú pháp xoá snapshot cho KVM.

    Để xoá snapshot, bạn sử dụng lệnh dưới.

    virsh snapshot-delete --domain kvm-test1 --snapshotname 14Dec2022_S1

    Cách snapshot trạng thái disk, không phải trạng thái máy ảo cho KVM.

    virsh snapshot-create-as --name "snap01" \
    --description "RHEL 7.6 snapshot" \
    --disk-only \
    --domain kvm-test1

    Để xoá bản snapshot disk sử dụng command sau.

    virsh snapshot-delete --domain kvm-test1 --metadata 14Dec2022

    Xử lý 1 số lỗi trong quá trình tạo snapshot.

    Trong quá trình tạo snapshot, bạn có thể gặp lỗi như sau:

    error: Operation not supported: live snapshot creation is supported only during full system snapshots

    Trong trường hợp như vậy, trước tiên hãy liệt kê tất cả các máy ảo.

    virsh list

    Kiểm tra các disk.

    virsh dumpxml kvm-test1 | grep disk
    virsh domblklist kvm-test1

    Và sau đó chúng ta có thể tạo snapshot nhanh như sau.

    $ virsh snapshot-create-as kvm-test1 --name 14Dec2022 --disk-only
    Domain snapshot 14Dec2022 created

    Để nhận các hướng dẫn tóm tắt về các lệnh snapshot-create-as, hãy sử dụng lệnh dưới.

    $ virsh help snapshot-create-as
      NAME
        snapshot-create-as - Create a snapshot from a set of args
    
      SYNOPSIS
        snapshot-create-as <domain> [--name <string>] [--description <string>] [--print-xml] [--no-metadata] [--halt] [--disk-only] [--reuse-external] [--quiesce] [--atomic] [--live] [--memspec <string>] [[--diskspec] <string>]...
    
      DESCRIPTION
        Create a snapshot (disk and RAM) from arguments
    
      OPTIONS
        [--domain] <string>  domain name, id or uuid
        --name <string>  name of snapshot
        --description <string>  description of snapshot
        --print-xml      print XML document rather than create
        --no-metadata    take snapshot but create no metadata
        --halt           halt domain after snapshot is created
        --disk-only      capture disk state but not vm state
        --reuse-external  reuse any existing external files
        --quiesce        quiesce guest's file systems
        --atomic         require atomic operation
        --live           take a live snapshot
        --memspec <string>  memory attributes: [file=]name[,snapshot=type]
        [--diskspec] <string>  disk attributes: disk[,snapshot=type][,driver=type][,stype=type][,file=name]

    Như vậy bài viết này đã cho biết cách tạo snapshot bằng lệnh virsh cli. Xem tài liệu tham khảo lệnh virsh tại đây để biết thêm thông tin.

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email