Phân tích quá trình ảo hóa với KVM trên nền tảng Fedora 12 Server

Cập nhật lúc 11h23' ngày 02/06/2010

Quản Trị Mạng - Trong bài viết sau, Quản Trị Mạng sẽ hướng dẫn, giải thích với các bạn từng bước cài đặt và sử dụng KVM trong việc tạo, kích hoạt hệ thống máy ảo trên Fedora 12 Server. Cụ thể là việc tạo máy ảo dựa trên file ảnh – dựa trên hệ thống thực hoặc máy ảo sử dụng phân vùng hệ thống - logical volume (LVM).

KVM là dạng viết tắt của Kernel-based Virtual Machine (hiểu nôm na là nhân kernel dựa trên những tính năng có thực của máy ảo), và tận dụng tính năng ảo hóa của phần cứng hỗ trợ. Ví dụ: để xây dựng được hệ thống máy ảo này, bạn cần có bộ vi xử lý hỗ trợ công nghệ ảo hóa tốt như Intel VT hoặc AMD-V…

1. Lưu ý sơ bộ: trong bài viết này sử dụng hệ điều hành Fedora 12 server và hostname server1.example.com, địa chỉ IP: 192.168.0.100 là địa chỉ KVM host.

Bên cạnh đó, chúng ta cũng cần chuẩn bị bộ máy desktop có cài đặt virt-manager, dùng để kết nối đến bộ điều khiển phần cứng đồ họa của hệ thống máy ảo, ở đây là hệ điều hành Fedora 12 desktop.

2. Tiến hành cài đặt KVM

Đối với Fedora 12 KVM host, trước tiên cần kiểm tra xem CPU có hỗ trợ công nghệ ảo hóa phần cứng hay không, sử dụng câu lệnh sau:

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

Nếu kết quả hiển thị có 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 rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
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 rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
[root@server1 ~]#

Có nghĩa là CPU có hỗ trợ. Ngược lại, nếu kết quả trả về không hiển thị gì cả, nghĩa là CPU của bạn không hỗ trợ công nghệ ảo hóa phần cứng, bạn cần dừng lại hoặc sử dụng 1 hệ thống khác.

Để cài đặt KVM và virtinst (1 công cụ để tạo máy ảo), ta thực hiện câu lệnh sau:

yum install kvm qemu libvirt python-virtinst

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

/etc/init.d/libvirtd start

Để kiểm tra lại xem việc cài đặt KVM có thành công hay không, dùng câu lệnh sau:

virsh -c qemu:///system list

Và nếu thành công, kết quả trả về sẽ có dạng như sau:

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

[root@server1 ~]#

Nếu có bất cứ thông báo lỗi nào xuất hiện, bạn phải thực hiện lại từ đầu.

Tiếp theo, chúng ta cần thiết lập hệ thống mạng bắc cầu (network bridge) trên server, để máy ảo có thể được truy cập từ các địa chỉ host khác nhau, nếu những hệ thống host này có thật (sử dụng phần cứng vật lý).

Để làm việc này, chúng ta cần cài đặt gói bridge-utils:

yum install bridge-utils

Và thiết lập các thông số sao cho phù hợp với hệ thống của bạn.

Bước tiếp theo, tắt bỏ chức năng NetworkManager của Fedora, và kích hoạt hệ thống mạng bình thường khác. NetworkManager rất tốt và phù hợp với hệ thống desktop, nơi chúng ta thêm, bớt hoặc tùy chỉnh các kết nối (LAN, WAN) nhưng đối với hệ thống server thì hoàn toàn ngược lại:

chkconfig NetworkManager off
chkconfig --levels 35 network on
/etc/init.d/network restart

Kiểm tra lại /etc/resolv.conf nếu nó đã liệt kê tất cả các nameserver mà bạn thiết lập và tùy chỉnh trước đó:

cat /etc/resolv.conf

Nếu hệ thống “bỏ sót” 1 nameserver nào, chạy lệnh sau:

system-config-network

và thêm nameserver bị sót vào danh sách hiển thị.

Để tùy chỉnh mạng bắc cầu, tạo file /etc/sysconfig/network-scripts/ifcfg-br0 (lưu ý sử dụng giá trị BOOTPROTO, DNS1 (hoặc bất kỳ DNS nào khác), GATEWAY, IPADDR, NETMASK và SEARCH từ file /etc/sysconfig/network-scripts/ifcfg-eth0):

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

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
DNS1=145.253.2.75
GATEWAY=192.168.0.1
IPADDR=192.168.0.100
NETMASK=255.255.255.0
ONBOOT=yes
SEARCH="example.com"

Tiếp theo, chỉnh /etc/sysconfig/network-scripts/ifcfg-eth0 theo giá trị sau:

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

# Networking Interface
DEVICE=eth0
#BOOTPROTO=none
#DNS1=145.253.2.75
#GATEWAY=192.168.0.1
HWADDR=00:1e:90:f3:f0:02
#IPADDR=192.168.0.100
#NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
BRIDGE=br0

Kết thúc, khởi động lại hệ thống:

reboot

Sau đó, chạy lệnh sau:

ifconfig

Hệ thống sẽ hiển thị mạng bắc cầu vừa tạo (br0):

[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:113 errors:0 dropped:0 overruns:0 frame:0
          TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:16520 (16.1 KiB)  TX bytes:11889 (11.6 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 MULTICAST  MTU:1500  Metric:1
          RX packets:136 errors:0 dropped:0 overruns:0 frame:0
          TX packets:98 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:22152 (21.6 KiB)  TX bytes:14147 (13.8 KiB)
          Interrupt:28 Base address:0x2000

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:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:746 (746.0 b)  TX bytes:746 (746.0 b)

virbr0    Link encap:Ethernet  HWaddr E2:54:14:EA:7A:01
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          inet6 addr: fe80::e054:14ff:feea:7a01/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:5156 (5.0 KiB)

[root@server1 ~]#

Trang: 
T.Anh (theo Howtoforce)
Đánh giá(?):
META.vn | Mua sắm trực tuyến
Bài viết mới nhất
Xem tất cả
Bài viết cũ hơn cùng chủ đề