View Single Post
Tuổi 06-03-2014, 02:19 PM   #1
hoctinhoc
Guest
 
Trả Lời: n/a
Hướng dẫn cài đặt và sử dụng KVM trên máy chủ CentOS 6.0
Hướng dẫn cài đặt và sử dụng KVM trên máy chủ CentOS 6.0



Từ lâu, KVM (Kernel-based Virtual Machine) được rất nhiều người biết đến là một cơ sở hạ tầng ảo hóa cho nhân Linux dành cho những CPU hỗ trợ công nghệ ảo hóa như Intel VT hoặc AMD-V... Trước đây chúng tôi đã từng hướng dẫn các bạn ảo hóa với KVM trên nền tảng Fedora 12 Server. Hôm nay chúng tôi sẽ tiếp tục giúp các bạn có thể cài đặt, sử dụng KVM để khởi tạo và chạy các máy ảo trên máy chủ CentOS 6.0.

1. Một số lưu ý

Phần minh họa sau chúng tôi sử dụng máy chủ CentOS 6.0 với hostname server1.example.com, địa chỉ IP của KVM host là 192.168.0.100.

SELinux cần được vô hiệu hóa trên hệ thống CentOS 6.0 để có thể làm việc tốt nhất (nếu bạn để SELinux ở chế độ on nó vẫn hoạt động nhưng chúng tôi không chắc chắn về những sự cố có thể xảy ra).

vi /etc/selinux/config
Set SELINUX=disabled

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

Sau đó khởi động lại:

reboot

Ngoài ra chúng ta cần hệ thống desktop được cài đặt virt-manager để kết nối tới giao diện điều khiển đồ họa của máy ảo mà chúng ta sẽ tạo. Ở đây sử dụng Fedora 15.

2. Cài đặt KVM

Trước khi tiến hành, bạn cần xác định xem CPU của mình có hỗ trợ ảo hóa phần cứng hay không:

egrep '(vmx|svm)' --color=always /proc/cpuinfo

Nếu màn hình hiển thị thông tin dạng như sau:

[root@server1 ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
[root@server1 ~]#

Như vậy là CPU của bạn có hỗ trợ, ngược lại nếu không hiển thị gì thì bạn hãy dừng lại ở đây.

Bây giờ chúng ta import các key GPG cho các gói phần mềm:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Tiến hành cài đặt KVM và virtinst (một công cụ để tạo máy ảo):

yum install kvm libvirt python-virtinst qemu-kvm

Sau đó khởi động libvirt daemon:

/etc/init.d/libvirtd start

Kiểm tra xem KVM đã cài đặt thành công hay chưa, chạy lệnh:

virsh -c qemu:///system list

Nếu màn hình hiển thị thông tin sau đây chứng tỏ bạn đã thành công:

[root@server1 ~]# virsh -c qemu:///system list
Id Name State
----------------------------------

[root@server1 ~]#

Ngược lại, bạn hãy thực hiện thêm lần nữa.

Tiếp theo chúng ta cần thiết lập một cầu nối cho mạng trên máy chủ (network bridge) để có thể truy cập máy ảo từ xa bằng các host khác nhau như hệ thống vật lý trong mạng.

Để làm điều này, cài đặt gói bridge-utils:

yum install bridge-utils

Và cấu hình một bridge. Tạo file /etc/sysconfig/network-scripts/ifcfg-br0 (hãy sử dụng các giá trị IPADDR, PREFIX, GATEWAY, DNS1 và DNS2 từ tập tin /etc/sysconfig/network-scripts/ifcfg-eth0); bạn cũng cần chắc chắn rằng mình đang dùng giá trị TYPE=Bridge, không phải TYPE=Ethernet:

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.0.100
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System br0"

Chỉnh sửa /etc/sysconfig/network-scripts/ifcfg-eth0 như sau (các giá trị BOOTPROTO, IPADDR, PREFIX, GATEWAY, DNS1, DNS2 để ở dạng chú thích và thêm dòng BRIDGE=br0):

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=00:1E:90:F3:F0:02
TYPE=Ethernet
#BOOTPROTO=none
#IPADDR=192.168.0.100
#PREFIX=24
#GATEWAY=192.168.0.1
#DNS1=8.8.8.8
#DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
BRIDGE=br0

Khởi động lại mạng:

/etc/init.d/network restart

Và chạy lệnh:

ifconfig

Network bridge (br0) sẽ hiển thị như sau:

[root@server1 ~]# ifconfig
br0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:103 errors:0 dropped:0 overruns:0 frame:0
TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7434 (7.2 KiB) TX bytes:21398 (20.8 KiB)

eth0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:19511 errors:0 dropped:0 overruns:0 frame:0
TX packets:11592 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25980124 (24.7 MiB) TX bytes:1104371 (1.0 MiB)
Interrupt:28 Base address:0x6000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3608 (3.5 KiB) TX bytes:3608 (3.5 KiB)

virbr0 Link encap:Ethernet HWaddr 6A:12:69:18:2B:05
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

[root@server1 ~]#

3. Cài đặt virt-viewer hoặc virt-manager trên Fedora 15 Desktop


Tiếp theo chúng ta cần một phương tiện để kết nối tới giao diện điều khiển đồ họa của các guest. Ở đây sử dụng virt-manager cho Fedora 15.

Bắt đầu bằng sử dụng tài khoản root

su

Và chạy:

yum install virt-manager libvirt qemu-system-x86 openssh-askpass

Sau đó cài đặt virt-manager (trong trường hợp bạn đang dùng Ubuntu 11.04).

sudo apt-get install virt-manager

4. Tạo một Debian Squeeze Guest từ dòng lệnh

Bây giờ quay trở lại CentOS 6.0 KVM host.

Và xem:

man virt-install

Để tìm hiểu cách sử dụng virt-install.

Chúng ta sẽ tạo một máy ảo dựa trên hình ảnh trong thư mục /var/lib/libvirt/images/ đã được tạo ra khi cài đặt KVM ở phần 2.

Để tạo một Debian Squeeze guest (trong chế độ bridging) với tên vm10, dung lượng RAM 512MB, hai CPU ảo và file ảnh đĩa cứng /var/lib/libvirt/images/vm10.img (kích thước 12GB). Cho đĩa CD Debian Squeeze Netinstall vào ổ CD và chạy:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

Tất nhiên, bạn cũng có thể tạo file ảnh ISO của Debian Squeeze Netinstall CD (khuyến cáo nên tạo trong /var/lib/libvirt/images/ bởi khi tạo máy ảo thông qua virt-manager từ Fedora sẽ tìm kiếm file ISO trong thư mục này).

dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.2.1-amd64-netinst.iso

Và sử dụng file ISO đó bằng lệnh virt-install:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.2.1-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

Kết quả sẽ hiển thị như sau:

[root@server1 ~]# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.2.1-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

Starting install...
Allocating 'vm10.img' | 12 GB 00:00
Creating domain... | 0 B 00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
[root@server1 ~]#

5. Kết nối tới Guest


KVM guest sẽ khởi động từ Debian Squeeze Netinstall và bắt đầu cài đặt Debian – đó là lý do tại sao bạn cần kết nối tới giao diện điều khiển đồ họa của guest. Bạn có thể làm điều này với virt-manager trên Fedora 15 desktop.

Vào Applications > System Tools > Virtual Machine Manager để khởi động virt-manager:



Khi virt-manager được chạy lần đầu tiên, bạn sẽ nhận được thông báo lỗi “Unable to open a connection to the libvirt management daemon.” Hãy yên tâm và bỏ qua nó bởi chúng ta không muốn kết nối tới libvirt daemon cục bộ. Kích Close.



Vào File > Add Connection để kết nối vào CentOS 6.0 KVM host:



Tại mục Hypervisor chọn QEMU/KVM, đánh dấu tích vào Connect to remote host. Kích vào nút mũi tên cạnh mục Method để mở một danh sách mới, chọn SSH, phần Username bạn nhập root, phần hostname nhập server1.example.com hoặc địa chỉ IP 192.168.0.100 của CentOS 6.0 KVM host. Cuối cùng ấn Connect.



Nếu đây là lần đầu tiên kết nối tới máy chủ KVM từ xa, bạn cần gõ yes và ấn OK:



Sau đó nhập mật khẩu root của CentOS 6.0 KVM host:



Bạn sẽ thấy vm10 đang chạy. Đánh dấu vào guest đó và kích nút Open để mở giao diện điều khiển:



Nhập lại mật khẩu root cho KVM host lần nữa:



Bây giờ bạn sẽ được kết nối với giao diện điều khiển đồ họa của guest và xem trình cài đặt Debian:



Tiến hành cài đặt Debian như cách thông thường trên một hệ thống vật lý. Lưu ý ở phần cuối của quá trình cài đặt, Debian guest cần khởi động lại. Sau đó guest tự động dừng hoạt động, bạn cần khởi động lại nó. Đối với virt-manager hoặc CentOS 6.0 KVM host ta dùng lệnh sau:
irsh --connect qemu:///system

start vm10

quit
Như vậy bạn có thể kết nối tới guest lần nữa với virt-manager và cấu hình cho nó. Nếu bạn cài đặt OpenSSH (gói openssh-server) trong guest, bạn có thể kết nối tới nó qua SSH client (giống như PuTTY).

Tham khảo:

http://www.quantrimang.com.vn/ao-hoa...ntos-6-0-83251

Theo Đ.Hải - QuanTriMang


  Trả lời ngay kèm theo trích dẫn này