Kênh Giải Pháp VN - Công Nghệ Máy Chủ Mạng - Giải Pháp Máy Chủ - Giải Pháp Mạng Doanh Nghiệp - Tư Vấn Giải Pháp Mạng Máy Chủ - VN Solutions Channel :: Ảo hóa với KVM trên máy chủ CentOS 6.0 (Phần 1) - Ao hoa voi KVM tren may chu CentOS 6.0 (Phan 1)
Quản Trị  Hệ Điều Hành Linux - Unix
 
Ảo hóa với KVM trên máy chủ CentOS 6.0 (Phần 1)
09:32 | 13/10/2011

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).

Phan Trọng Hiếu (Nguồn : Đ.Hải - QuanTriMang )
 
Ý kiến phản hồi và bình luận Góp ý kiến của bạn

Các tin mới nhất :
- Thiết lập 1 hệ thống High-availability - Loadbalancing và Reverse Proxy cho Web Server trên CentOS 6/RHEL Sử dụng HAProxy và Keepalived
- Đồng bộ hóa dữ liệu giữa hai Server Ubuntu 11.10 sử dụng Unison.
- Bảo vệ thư mục web với mod_auth_mysql trên Apache2
- Tích hợp MailScanner - ClamAV - SpamAssassin - SquirrelMail vào PostfixTrên Centos 5.7
- Cài đặt rsnapshot trên CentOS
- Xây dựng hệ thống NAS Cluster sử dụng OpenFiler
- Cài đặt Nginx trên Ubuntu 11.10
- Thiết lập hệ thống Active/active Samba CTDB Cluster sử dụng GFS & DRBD Trên Centos 5.7 X86_64
- Thiết lập máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần3)
- Thiết lập máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần2)
Các tin liên quan :
- Cài đặt và cấu hình Samba trên centos 6 X86_64
- Pandora công cụ monitor trên linux
- Xây dựng hệ thống Backup server trên linux/Centos sử dụng Amanda
- Xây dựng 1 hệ thống File server có độ sẵn sàng cao ,Sử dụng GlusterFS Trên Centos 5.6
- Mount NTFS Partition trong Centos 5.6 - centos 6
- Hạn chế SSH Bruforce cho VPS bằng Denyhosts
- Swat Công cụ quản lý ,cấu hình Samba qua giao diện web
- Install Kernel 3.1.0 trên Ubuntu 11.04
- Virtual user và domain trên Postfix với MySQL , Dovecot và SquirrelMail trên CentOS 5.6 X86_64
- Cài đặt ,Cấu hình và Sử dụng Mail Zimbra trên Centos 5.6 X86_64
Xem tiếp
Bài nhiều người đọc cùng chuyên mục
Thiết lập 1 hệ thống High-availability - Loadbalancing và Reverse Proxy cho Web Server trên CentOS 6/RHEL Sử dụng HAProxy và Keepalived
 
Cấu hình ftp server với vsftpd
 
Cài Đặt Web Server (LAMP )Trên Centos 6 X86_64
 
Cài đặt và cấu hình Server Linux CentOS hoàn chỉnh (Phần 1)
 
50 câu lệnh Linux phải nhớ
 
Thiết lập tường lửa Iptables cho Linux - Phần 1
 
Cài đặt Nginx trên server CentOS 6 x86_64 với PHP5 hỗ trợ qua PHP – FPM và MySQL.
 
Trang chủ | Giới thiệu | Quảng cáo | Liên hệ
Giấy phép ICP số 199/GP-TTĐT. Bộ Thông tin và Truyền thông cấp.
Cơ quan quản lý  : Công Ty Cổ Phần Kênh Giải Pháp
Bản quyền © 2010-2011 Kenhgiaiphap.vn . Giữ toàn quyền.
Ghi rõ nguồn "Kenhgiaiphap.vn" khi phát hành lại thông tin từ website này.