Làm chủ virsh: Tuyệt chiêu quản lý máy ảo KVM từ dòng lệnh

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

Dòng lệnh: Phím tắt dẫn đến sự chuyên nghiệp

Giao diện đồ họa (GUI) như virt-manager rất thân thiện, nhưng khi bạn phải quản lý cùng lúc 20-30 server hoặc cần tự động hóa, virsh mới là chân ái. Tin mình đi, cảm giác ngồi SSH từ xa, gõ vài dòng lệnh để bật máy ảo hay cấu hình mạng “vèo vèo” không chỉ ngầu mà còn năng suất hơn nhiều.

Trong môi trường homelab với khoảng 15 máy ảo chạy trên Ubuntu Server, mình hiếm khi động vào chuột. Dùng virsh giúp mình xử lý nhanh các tác vụ khó chỉ trong vài giây. Thay vì click qua hàng tá menu, mình chỉ cần một terminal duy nhất để kiểm soát mọi thứ từ tài nguyên đến kết nối mạng.

Quick start: Những câu lệnh nằm lòng trong 5 phút

Đừng để danh sách lệnh làm bạn choáng ngợp. Dưới đây là bảng tra cứu những lệnh cơ bản mà bạn sẽ dùng tới 90% thời gian làm việc:

# Xem danh sách máy ảo (gồm cả máy đang tắt)
virsh list --all

# Đánh thức một máy ảo
virsh start tên_máy_ảo

# Tắt máy an toàn (tương tự bấm nút Shutdown trên Windows)
virsh shutdown tên_máy_ảo

# Tắt nóng (tương tự rút điện, dùng khi máy bị treo)
virsh destroy tên_máy_ảo

# Cài đặt máy ảo tự khởi động khi host Linux reboot
virsh autostart tên_máy_ảo

# Đột nhập vào console của máy ảo (cực kỳ hữu ích khi mất mạng)
virsh console tên_máy_ảo

Đi sâu vào quản lý vòng đời máy ảo

1. Chỉnh sửa cấu hình “nóng”

Dưới nắp capo, mỗi máy ảo KVM đơn giản là một file cấu hình XML. Nếu bạn cần nâng cấp từ 2GB lên 8GB RAM hoặc thêm core CPU, hãy dùng lệnh:

virsh edit tên_máy_ảo

Lệnh này sẽ mở file cấu hình bằng trình soạn thảo mặc định (thường là Nano hoặc Vi). Sau khi bạn lưu và thoát, virsh sẽ tự động kiểm tra cú pháp. Nếu mọi thứ ổn, các thay đổi sẽ được áp dụng ngay trong lần khởi động tới.

2. Tuyệt chiêu nhân bản (Cloning)

Đừng lãng phí 20 phút để cài lại OS từ đầu. Mình thường tạo một bản OS chuẩn (Gold Image) đã tối ưu, sau đó dùng virt-clone để nhân bản ra hàng loạt máy ảo con chỉ trong chưa đầy 1 phút:

virt-clone --original template-ubuntu --name web-server-01 --file /var/lib/libvirt/images/web-server-01.qcow2

Công cụ này rất thông minh. Nó tự tạo địa chỉ MAC mới để tránh xung đột IP trong mạng nội bộ của bạn.

Kỹ thuật nâng cao cho dân chuyên

Snapshot: Tấm vé bảo hiểm khi vọc vạch

Trước khi “quất” lệnh apt upgrade hay thay đổi file cấu hình hệ thống, hãy tạo ngay một snapshot. Nếu chẳng may server bị lỗi (Kernel panic hay lỗi xung đột app), bạn chỉ mất đúng 2 giây để quay lại trạng thái hoàn hảo trước đó.

# Chụp ảnh hệ thống
virsh snapshot-create-as --domain tên_máy_ảo --name "truoc-khi-update" --description "Snapshot ngay truoc khi nang cap Nginx"

# Khôi phục lại như cũ
virsh snapshot-revert tên_máy_ảo --snapshotname "truoc-khi-update"

Quản lý mạng không còn là nỗi lo

Nhiều bạn thường bối rối khi máy ảo không có Internet. virsh quản lý mạng độc lập với máy ảo. Hãy đảm bảo mạng default (NAT) luôn ở trạng thái active:

# Kiểm tra "sức khỏe" mạng
virsh net-list --all

# Đánh thức mạng default nếu nó đang ngủ
virsh net-start default

# Xem danh sách IP mà các máy ảo đã nhận
virsh net-dhcp-leases default

Mẹo nhỏ nhưng có võ cho DevOps

Thoát khỏi “mê cung” Console

Lỗi kinh điển của người mới là kẹt trong virsh console và không biết cách thoát ra. Đừng dùng Ctrl + C vì nó vô dụng. Hãy nhớ tổ hợp phím thần thánh: Ctrl + ].

Tối ưu hiệu năng với CPU Pinning

Nếu bạn chạy Database nặng, hãy dùng virsh vcpupin. Kỹ thuật này cố định các vCPU của máy ảo vào core vật lý cụ thể. Nó giúp giảm độ trễ đáng kể và tận dụng tối đa cache L3 của CPU.

Làm chủ virsh là bước đệm quan trọng để bạn tiến tới quản lý hạ tầng bằng Terraform hay OpenStack. Hãy mạnh dạn tắt cái GUI đi. Bắt đầu gõ lệnh ngay hôm nay, bạn sẽ thấy tốc độ làm việc của mình thay đổi rõ rệt.

Share: