Computer >> Máy Tính >  >> Phần mềm >> Máy ảo

Quản lý Máy ảo KVM từ CLI với Virsh

Trong phần trước, chúng ta đã thảo luận về cách cài đặt KVM hypervisor và tạo một máy ảo. Trong một bài viết, chúng tôi không thể trình bày chi tiết về quản lý máy ảo KVM. Hôm nay chúng tôi sẽ giới thiệu cách quản lý máy ảo từ dòng lệnh với virsh :cách thay đổi cài đặt VM, thêm thiết bị ảo bổ sung và sử dụng lệnh nào để quản lý máy ảo KVM trên Linux.

Sử dụng lệnh Virsh (Virtual Shell) để quản lý Máy ảo KVM

Hãy cùng xem cách xem các máy ảo KVM đã đăng ký, cách khởi động, dừng hoặc xóa chúng. Virsh (dựa trên API libvirt) có thể được sử dụng để quản lý máy ảo KVM trong bảng điều khiển Linux.

# virsh list - hiển thị danh sách các máy ảo đang chạy

# virsh list --all - hiển thị danh sách tất cả các máy ảo đã đăng ký (bao gồm cả những máy đã ngừng hoạt động)

Quản lý Máy ảo KVM từ CLI với Virsh

Như bạn có thể thấy trong ảnh chụp màn hình, trong trường hợp đầu tiên, một máy ảo tắt không được hiển thị.

# virsh shutdown <vm name> - tắt máy ảo

# virsh start <vm name> - khởi động máy ảo

# virsh suspend <vm name> - tạm ngừng VM

# virsh resume <vm name> - khởi động máy ảo bị treo

# virsh reboot <vm name> - khởi động lại máy ảo

# virsh destroy <vm name> - bắt đầu tắt máy ngay lập tức và dừng máy ảo (sử dụng lệnh này khi máy ảo khách không phản hồi)

# virsh undefine <vm name> - hủy đăng ký VM và xóa khối lượng lưu trữ của nó

# virsh vcpuinfo <vm name> - hiển thị thông tin về vCPU của VM

Quản lý Máy ảo KVM từ CLI với Virsh

Dưới đây là một số lệnh khác để nhận thông tin khác nhau về máy ảo:

# virsh domid <vm name> - lấy ID máy ảo

# virsh domuuid <vm name> - hiển thị UUID của máy ảo

# virsh dominfo <vm name> - hiển thị thông tin về máy ảo

# virsh domstate <vm name> - xem trạng thái máy ảo

Quản lý Máy ảo KVM từ CLI với Virsh

# virsh dumpxml <vm name> - liệt kê tệp cấu hình của một máy ảo ở định dạng XML

Cách thêm bộ nhớ và vCPU vào Máy ảo KVM?

Trong bảng điều khiển KVM, bạn có thể thêm hoặc giảm tài nguyên CPU hoặc bộ nhớ được gán cho máy ảo theo hai cách:

  • Sử dụng virsh
  • Thông qua cấu hình VM XML tệp

Nếu máy ảo đang chạy, hãy tắt máy:

# virsh shutdown test-centos

Domain test-centos is being shutdown

Sau đó, sử dụng virsh để thay đổi số lượng CPU ảo (vCPU) thành 6:

# virsh setvcpus <vm name> <vcpu_count> --config

Ví dụ:

# virsh setvcpus test-centos 6 --config

Sau khi tôi chạy lệnh, một lỗi xuất hiện:

error: invalid argument: requested vcpus is greater than max allowable vcpus for the persistent domain: 6 > 4

Bạn không thể đặt số lõi lớn hơn số lượng tối đa. Để tăng số vCPU VM tối đa được phép, hãy chạy lệnh sau:

# virsh setvcpus test-centos 6 --config --maximum

Sau đó chạy lệnh trước đó và khởi động máy ảo:

Quản lý Máy ảo KVM từ CLI với Virsh

Hãy kiểm tra số lượng vCPU trong cài đặt máy ảo:

# virsh dumpxml test-centos

<domain type='kvm'>
<name>test-centos</name>
<uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid>
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>6</vcpu>

Theo cách tương tự, bạn có thể thêm RAM bổ sung vào máy ảo:

# virsh setmem <vm_name> <memsize> --config

Ví dụ:

# virsh setmem test-centos 4G --config

Đã xảy ra lỗi với cùng một lý do:

Lỗi
error: invalid argument: cannot set memory higher than max memory.

Hãy tăng dung lượng bộ nhớ tối đa:

# virsh setmaxmem test-centos 6G --config

Sau đó, bạn có thể thêm bộ nhớ vào máy ảo.

Trước khi thực hiện bất kỳ thay đổi nào, hãy đảm bảo tắt máy ảo và sau đó khởi động nó.

Ngoài ra, bạn có thể thay đổi số lượng tài nguyên của KVM VM trong tệp cấu hình XML của nó. Bạn có thể chỉnh sửa nó trực tuyến hoặc sao lưu tệp VM XML, sửa đổi nó và áp dụng cho máy ảo.

Hãy chỉnh sửa tệp VM XML trực tuyến:

# virsh edit <vm_name>

Trong vi trình chỉnh sửa xuất hiện, thực hiện các thay đổi bạn muốn bằng cách nhấn vào Chèn nút.

Thay đổi khối sau:

<domain type='kvm'>
<name>test-centos</name>
<uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid>
<memory unit='KiB'>6291456</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>6</vcpu>
<os>

Ví dụ:hãy phân bổ 2 lõi bộ xử lý và 1 GB bộ nhớ cho máy ảo:

Quản lý Máy ảo KVM từ CLI với Virsh

Lưu ý rằng kích thước bộ nhớ được hiển thị bằng kilobyte.

Lưu các thay đổi trong tệp và khởi động lại máy ảo của bạn:

# virsh reboot <vm_name>

Bạn có thể làm tương tự nếu sao lưu tệp XML:

# virsh dumpxml <vm_name> > /root/test.xml
# vi /root/test.xml

Thay đổi cài đặt bạn muốn, lưu tệp và áp dụng nó vào máy ảo:

# virsh shutdown test-centos

Domain test-centos is being shutdown

# virsh define /root/test.xml

Domain test-centos defined from /root/test.xml

# virsh start test-centos

Domain test-centos started
Đôi khi khi bạn thay đổi tệp cấu hình VM trực tuyến, các tài nguyên được chỉ định sẽ được đặt lại sau khi khởi động lại. Trong trường hợp này, hãy dừng máy ảo và sau đó chỉ cần khởi động nó.

Thêm đĩa vào máy ảo KVM hiện có

Trong một trong các bài báo của chúng tôi, chúng tôi đã mô tả cách mở rộng hoặc giảm kích thước đĩa của máy ảo KVM. Nhưng chúng tôi không cho biết cách thêm đĩa bổ sung.

Trước hết, hãy tạo một tệp đĩa mới cho một máy ảo:

# qemu-img create -f qcow2 -o size=20G /vz/disk/test.img

Thay vì qcow2, bạn có thể sử dụng định dạng đĩa bạn muốn. Cũng chỉ định đường dẫn tệp. Ổ đĩa lưu trữ của tôi nằm trong / vz / disk /.

Sau đó, bạn có thể thêm thiết bị đĩa ảo vào VM:

# virsh attach-disk <vm_name> /vz/disk/test.img vdb --type disk --persistent

Tắt máy và khởi động lại máy ảo của bạn, sau đó xem những gì bạn có:

# virsh shutdown test-centos

Domain test-centos is being shutdown

# virsh start test-centos

Domain test-centos started

# virsh dumpxml test-centos

<domain type='kvm' id='14'>
<name>test-centos</name>
<uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid>
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>6</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
<bootmenu enable='yes'/>
</os>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/vz/disk/test.img'/>
<backingStore/>
<target dev='vdb' bus='virtio'/>
<alias name='virtio-disk1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</disk>

Như bạn có thể thấy, đĩa đã được thêm vào.

Làm cách nào để thêm NIC thứ hai vào Máy ảo KVM?

Hãy thử thêm một giao diện mạng khác vào máy ảo. Trước hết, hãy kiểm tra các giao diện mạng trên máy chủ Linux:

# brctl show

Quản lý Máy ảo KVM từ CLI với Virsh

Tôi có một máy ảo với một giao diện mạng trên máy chủ KVM của mình. Tôi muốn thêm một giao diện mạng ảo khác vào br0. Chạy các lệnh sau:

# virsh shutdown test-centos
# virsh attach-interface test-centos --type bridge --source br0 --persistent
# virsh start test-centos

Đảm bảo rằng một giao diện mạng khác đã xuất hiện trong máy ảo của bạn:

Quản lý Máy ảo KVM từ CLI với Virsh

<interface type='bridge'>
<mac address='52:54:00:7e:c1:9f'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:2f:23:79'/>
<source bridge='br0'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
</interface>

Ngoài ra, bạn có thể thay đổi cài đặt mạng của máy ảo của mình trực tiếp qua tệp XML:

# virsh edit test-centos

Sau giao diện mạng đầu tiên, hãy thêm các dòng sau:

<interface type='bridge'>
<source bridge='br0'/>
</interface>

Lưu tệp và khởi động máy ảo. KVM sẽ tự thêm cấu hình còn lại (địa chỉ MAC, v.v.).

Trong bài viết này, chúng tôi đã trình bày những điều chính mà bạn có thể cần để quản lý máy ảo KVM từ bảng điều khiển máy chủ Linux. Trong phần tiếp theo, chúng tôi sẽ giới thiệu cách quản lý máy ảo thông qua virt-manager GUI.