12
Chuyên trang dành cho kỹ thuật viên tin họcCHIA SẺ - KINH NGHIỆM - HỌC TẬP - THỦ THUẬT Phân tích quá trình ảo hóa với KVM trên nền tảng Fedora 12 Server 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 đị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 1 of 12

Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

Embed Size (px)

Citation preview

Page 1: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

“Chuyên trang dành cho kỹ thuật viên tin học” CHIA SẺ - KINH NGHIỆM - HỌC TẬP - THỦ THUẬT

Phân tích quá trình ảo hóa với KVM trên nền tảng Fedora 12 ServerTrong 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íchhoạ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 ảosử 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ậndụ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óatố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ủahệ 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/cpuinfoflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmovpat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl pni cx16lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetchflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscallnx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy3dnowprefetch[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ầncứ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ỉ hostkhá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ượclại:

chkconfig NetworkManager off

1 of 12

Page 2: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

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àokhác), GATEWAY, IPADDR, NETMASK và SEARCH từ file /etc/sysconfig/network-scripts/ifcfg-eth0):

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

DEVICE=br0TYPE=BridgeBOOTPROTO=staticDNS1=145.253.2.75GATEWAY=192.168.0.1IPADDR=192.168.0.100NETMASK=255.255.255.0ONBOOT=yesSEARCH="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 InterfaceDEVICE=eth0#BOOTPROTO=none#DNS1=145.253.2.75#GATEWAY=192.168.0.1HWADDR=00:1e:90:f3:f0:02#IPADDR=192.168.0.100#NETMASK=255.255.255.0ONBOOT=yesTYPE=EthernetIPV6INIT=noUSERCTL=noBRIDGE=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 ~]# ifconfigbr0 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)

2 of 12

Page 3: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

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 ~]#

3. Cài đặt virt-manager trên hệ thống Fedora 12 Desktop

Đối với Fedora 12 Desktop, trước tiên, đăng nhập vào tài khoản root:

su

và chạy lệnh sau:

yum install virt-manager

để cài đặt virt-manager. Nếu bạn sử dụng Ubuntu 9.10 desktop, thì dùng câu lệnh sau:

sudo aptitude install virt-manager

4. Khởi tạo hệ thống guest Debian Lenny (dựa trên image)

Bây giờ chúng ta hãy quay trở về hệ thống Fedora 12 KVM host, xem lại bước

man virt-install

và học cách sử dụng. Để tạo hệ thống Debian Lenny guest (chế độ bắc cầu) với tên vm10, RAM 512MB, 2 CPU ảo, file ảnh đĩa ~/vm10.qcow2(dung lượng 12GB), tiếp theo cho đĩa Debian Lenny Netinstall CD vào ổ CD và chạy:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c /dev/cdrom --vnc--noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0 --hvm

Và tất nhiên, bạn có thể tạo file iso của đĩa cài đặt Debian Lenny Netinstall:

dd if=/dev/cdrom of=~/debian-500-amd64-netinst.iso

Sau đó, sử dụng file iso với dòng lệnh virt-install:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0 --hvm

Kết quả thu được sẽ như sau:

[root@server1 ~]# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0 --hvm

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

5. Kết nối tới hệ thống Guest

Trong hệ thống Fedora 12 Desktop, KVM guest sẽ khởi động từ Debian Lenny Netinstall CD và bắt đầu quá trình cài đặt Debian – đó là lý dotại sao cần kết nối tới bộ phận điều khiển đồ họa của hệ thống guest. Và bạn có thể làm được điều này với virt-manager trong Fedora 12

3 of 12

Page 4: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

desktop.

Chạy lệnh sau:

virt-manager

và khởi động virt-manager trên màn hình desktop (tương tự như vậy với hệ điều hành Ubuntu desktop). Khi khởi động virt-manager lần đầutiên, phần lớn mọi người sẽ nhìn thấy thông báo sau: (Error determining default hypervisor. Bỏ qua và nhấn OK:

Chọn File > Add Connection... để kết nối tới Fedora 12 KVM host:

Chọn QEMU/KVM trong mục Hypervisor, Remote tunnel over SSH trong mục Connection, và gõ vào giá trị hostname (server1.example.com)hoặc địa chỉ IP (192.168.0.100) của Fedora 12 KVM host. Sau đó nhấn nút Connect:

4 of 12

Page 5: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

Nếu đây là lần đầu tiên kết nối đến remote KVM server, bạn phải gõ Yes và bấm OK:

Sau đó điền mật khẩu root của Fedora 12 KVM host:

5 of 12

Page 6: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

Giờ đây, bạn sẽ nhìn thấy vm10 đang hoạt động. Đánh dấu hệ thống đó lại và nhấn nút Open:

Gõ mật khẩu root của KVM host lại lần nữa:

6 of 12

Page 7: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

Giờ đây, bạn đã hoàn thành quá trình kết nối tới cửa sổ giao diện điều khiển của hệ thống guest và trình cài đặt Debian:

Bây giờ chỉ cần tiếp tục cài đặt Debian như trên 1 hệ thống thực. Lưu ý rằng đến khâu cuối của quá trình cài đặt, hệ thống Debian guest cầnphải khởi động lại. Nhưng hệ thống guest sẽ tự động dừng lại, vì vậy bạn phải khởi động bằng cách thông thường, cũng như virt-managerhoặc giống như hiện tượng này trên giao diện dòng lệnh Fedora 12 KVM host:

virsh --connect qemu:///system

start vm10

quit

Sau đó, bạn có thể kết nối tới hệ thống guest 1 lần nữa với virt-manager, tiến hành thiết lập, tùy chỉnh các thông số kỹ thuật phù hợp. Nếubạn cài đặt OpenSSH (gói openssh-server) trong hệ thống guest, bạn có thể kết nối tới hệ thống bằng SSH client (tương tự như PuTTY).

6. Quản lý hệ thống KVM guest

Hệ thống KVM guest có thể được quản lý thông qua virsh - virtual shell. Để kết nối tới chức năng này, chạy câu lệnh sau:

virsh --connect qemu:///system

Và virtual shell sẽ trông giống như sau:

[root@server1 ~]# virsh --connect qemu:///systemWelcome to virsh, the virtualization interactive terminal.

7 of 12

Page 8: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

Type: 'help' for help with commands 'quit' to quit

virsh #

Nếu muốn tìm hiểu thêm về virtual shell, gõ lệnh:

help

để liệt kê tất cả các câu lệnh:

virsh # helpCommands:

help print help attach-device attach device from an XML file attach-disk attach disk device attach-interface attach network interface autostart autostart a domain capabilities capabilities connect (re)connect to hypervisor console connect to the guest console create create a domain from an XML file start start a (previously defined) inactive domain destroy destroy a domain detach-device detach device from an XML file detach-disk detach disk device detach-interface detach network interface define define (but don't start) a domain from an XML file domid convert a domain name or UUID to domain id domuuid convert a domain name or id to domain UUID dominfo domain information domname convert a domain id or UUID to domain name domstate domain state domblkstat get device block stats for a domain domifstat get network interface stats for a domain dumpxml domain information in XML edit edit XML configuration for a domain find-storage-pool-sources discover potential storage pool sources find-storage-pool-sources-as find potential storage pool sources freecell NUMA free memory hostname print the hypervisor hostname list list domains migrate migrate domain to another host net-autostart autostart a network net-create create a network from an XML file net-define define (but don't start) a network from an XML file net-destroy destroy a network net-dumpxml network information in XML net-edit edit XML configuration for a network net-list list networks net-name convert a network UUID to network name net-start start a (previously defined) inactive network net-undefine undefine an inactive network net-uuid convert a network name to network UUID nodeinfo node information nodedev-list enumerate devices on this host nodedev-dumpxml node device details in XML nodedev-dettach dettach node device its device driver nodedev-reattach reattach node device its device driver nodedev-reset reset node device pool-autostart autostart a pool pool-build build a pool pool-create create a pool from an XML file pool-create-as create a pool from a set of args pool-define define (but don't start) a pool from an XML file pool-define-as define a pool from a set of args pool-destroy destroy a pool pool-delete delete a pool

8 of 12

Page 9: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

pool-dumpxml pool information in XML pool-edit edit XML configuration for a storage pool pool-info storage pool information pool-list list pools pool-name convert a pool UUID to pool name pool-refresh refresh a pool pool-start start a (previously defined) inactive pool pool-undefine undefine an inactive pool pool-uuid convert a pool name to pool UUID quit quit this interactive terminal reboot reboot a domain restore restore a domain from a saved state in a file resume resume a domain save save a domain state to a file schedinfo show/set scheduler parameters dump dump the core of a domain to a file for analysis shutdown gracefully shutdown a domain setmem change memory allocation setmaxmem change maximum memory limit setvcpus change number of virtual CPUs suspend suspend a domain ttyconsole tty console undefine undefine an inactive domain uri print the hypervisor canonical URI vol-create create a vol from an XML file vol-create-as create a volume from a set of args vol-delete delete a vol vol-dumpxml vol information in XML vol-info storage vol information vol-list list vols vol-path convert a vol UUID to vol path vol-name convert a vol UUID to vol name vol-key convert a vol UUID to vol key vcpuinfo domain vcpu information vcpupin control domain vcpu affinity version show version vncdisplay vnc display

virsh #

list để liệt kê tất cả hệ thống guest đang chạy

list --all để liệt kê tất cả hệ thống guest đang chạy và không hoạt động

virsh # list --all Id Name State---------------------------------- 2 vm10 running

virsh #

Nếu bạn chỉnh sửa file xml (ở trong thư mục /etc/libvirt/qemu/), bạn phải định nghĩa lại 1 vài thông số của guest:

define /etc/libvirt/qemu/vm10.xml

Lưu ý rằng bất cứ khi nào bạn chỉnh sửa file xml trong thư mục đó, bạn phải định nghĩa lại dùng câu lệnh define.

Để bắt đầu hệ thống guest, chạy câu lệnh:

start vm10

Để dừng hoạt động, sử dụng lệnh:

shutdown vm10

Để bắt buộc dừng hoạt động, chạy lệnh:

destroy vm10

Tương tự như vậy, các câu lệnh khác như:

suspend vm10

9 of 12

Page 10: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

resume vm10

Dùng lệnh

quit

để thoát khỏi virtual shell.

7. Tạo file LVM dựa trên hệ thống guest

Trên thực tế, LVM-based guest ưu điểm hơn so với image-based guest, chúng không “nặng” như trên ổ cứng IO, dễ dàng sao lưu hơn (sử dụngLVM snapshot).

Để sử dụng LVM-based guest, bạn cần 1 hoặc 1 nhóm phân vùng có đủ dung lượng ổ cứng, không liên quan tới bất kỳ phân vùng logical nào.Ở bài viết này sử dụng nhóm /dev/vg_server1 với tổng dung lượng vào khoảng 465GB... :

vgdisplay

[root@server1 ~]# vgdisplay --- Volume group --- VG Name vg_server1 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 465.56 GB PE Size 4.00 MB Total PE 119184 Alloc PE / Size 26420 / 103.20 GB Free PE / Size 92764 / 362.36 GB VG UUID aHRSbB-piY1-maoZ-OWPy-DHIy-Bl2F-MPD0y2

[root@server1 ~]#

có chứa phân vùng logical /dev/vg_server1/lv_root dung lượng khoảng 98GB và phân vùng logical /dev/vg_server1/lv_swap (khoảng 5.5GB)– phần còn lại không được định dạng, và có thể dùng đối với KVM guests:

lvdisplay

[root@server1 ~]# lvdisplay --- Logical volume --- LV Name /dev/vg_server1/lv_root VG Name vg_server1 LV UUID QCl4x8-zR8r-yYZE-dNp1-leQk-ei9n-vTCcb4 LV Write Access read/write LV Status available # open 1 LV Size 97.66 GB Current LE 25000 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0

--- Logical volume --- LV Name /dev/vg_server1/lv_swap VG Name vg_server1 LV UUID rRg2Ua-WBbi-8bjn-TC0E-DBf2-Gcr2-k1nivK LV Write Access read/write LV Status available # open 1 LV Size 5.55 GB

10 of 12

Page 11: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

Current LE 1420 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1

[root@server1 ~]#

Bây giờ, chúng ta sẽ tạo máy ảo vm11 như hệ thống LVM-based guest. Cụ thể vm11 sẽ sử dụng 20GB, vì vậy ta cần tạo phân vùng logical/dev/vg_server1/vm11 với dung lượng tương đương:

lvcreate -L20G -n vm11 vg_server1

Sau đó sử dụng câu lệnh virt-install để tạo hệ thống guest:

virt-install --connect qemu:///system -n vm11 -r 512 --vcpus=2 --disk path=/dev/vg_server1/vm11 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0--hvm

Lưu ý rằng thay vì -f ~/vm11.qcow2, ở đây ta sử dụng --disk path=/dev/vg_server1/vm11, và không cần -s để chuyển qua bước chỉ địnhdung lượng ổ cứng nữa vì khoảng trống này đã được “định nghĩa” của phân vùng logical vm11 (20GB).

Bây giờ làm theo các bước ở mục 5 để cài đặt hệ thống guest.

8. Chuyển đổi Image-Based Guest thành LVM-Based Guest

Tiếp theo, giả sử rằng ta cần chuyển đổi (convert) image-based guest vm10 thành LVM-based guest. Và sau đây là các bước thực hiện.

Trước tiên, cần chắc chắn rằng hệ thống guest đã ngừng hoạt động:

virsh --connect qemu:///system

shutdown vm10

quit

Sau đó, tạo phân vùng logical (ví dụ: /dev/vg_server1/vm10) có dung lượng tương đương với file image – khoảng 12GB, vì vậy phân vùnglogical này cũng phải có tối thiểu 12GB:

lvcreate -L12G -n vm10 vg_server1

Sử dụng câu lệnh sau để bắt đầu chuyển đổi:

dd bs=1M if=/dev/zero of=/dev/vg_server1/vm10qemu-img convert ~/vm10.qcow2 -O raw /dev/vg_server1/vm10

Sau đó, xóa bỏ file ảnh đĩa:

rm -f ~/vm10.qcow2

Tiếp theo, cần phải chỉnh sửa vài thông số trong file /etc/libvirt/qemu/vm10.xml...

vi /etc/libvirt/qemu/vm10.xml

Và thay đổi những thông số sau:

[...]<disk type='file' device='disk'><source file='/root/vm10.qcow2'/><target dev='vda' bus='virtio'/></disk>[...]

thành như sau:

[...]<disk type='block' device='disk'><source dev='/dev/vg_server1/vm10'/><target dev='vda' bus='virtio'/></disk>[...]

Đương nhiên, sau đó phải định nghĩa lại guest:

11 of 12

Page 12: Phan Tich Qua Trinh Ao Hoa Voi KVM Tren Nen Tang Fedora 12 Server

virsh --connect qemu:///system

define /etc/libvirt/qemu/vm10.xml

Đăng nhập vào virsh shell, khởi động hệ thống guest:

start vm10

Thoát khỏi virsh shell:

quit

Một số tài liệu tham khảo: KVM, Fedora, Debian và Ubuntu.

Chúc các bạn thành công!

T.Anh (theo Howtoforce)

Công ty TNHH đầu tư phát triển tin học GC ComChuyên trang kỹ thuật máy vi tính cho kỹ thuật viên tin học

Điện thoại: (073) - 3.511.373 - 6.274.294

Website: http://www.gccom.net

12 of 12