Tài liệu Ảo hóa với KVM trên Ubuntu 11.10 pptx

37 510 4
Tài liệu Ảo hóa với KVM trên Ubuntu 11.10 pptx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ảo hóa với KVM trên Ubuntu 11.10 Công nghệ ảo hóa trong Linux với KVM (Kernel-based Virtual Machine) hẳn không còn xa lạ với các nhà quản trị mạng cũng như nhiều người dùng. Tuy nhiên sự phát triển của những hệ điều hành có nhân Linux hết sức nhanh chóng, kéo theo sự thay đổi trong cách sử dụng KVM khiến không ít người e ngại nâng cấp cho hệ thống của mình. Chuyên mục Linux trên QuanTriMang sẽ cố gắng cập nhật đầy đủ các hướng dẫn tối ưu nhất để bạn đọc có thể dễ dàng thao tác, kịp thời, nhanh chóng. Bài hướng dẫn sau đây sẽ trình bày cách sử dụng KVM trên hệ thống Ubuntu 11.10. 1. Một số lưu ý Trước hết bạn cần đảm bảo rằng phần cứng của mình hỗ trợ công nghệ ảo hóa, tức là CPU thuộc dòng Intel VT hoặc AMD-V. Phần minh họa sau chúng tôi sử dụng hostname server1.example.com, địa chỉ IP của KVM host là 192.168.0.100. Toàn bộ các lệnh dưới đây cần được chạy dưới quyền root, vì vậy bạn hãy trở thành root trước khi bắt đầu thực hiện: Sudo su 2. Cài đặt KVM và vmbuilder 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 ap ic 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 extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dno wprefetch lbrv flags : fpu vme de pse tsc msr pae mce cx8 ap ic 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 extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dno wprefetch lbrv 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. Để cài đặt KVM và vmbuilder (một script để khởi tạo hệ thống máy ảo Ubuntu cơ bản) chúng ta chạy: apt-get install ubuntu-virt-server python-vm-builder kvm-pxe Sau đó cần thêm vào user như là đăng nhập hiện tại (root) cho nhóm libvirtd: adduser `id -un` libvirtd adduser `id -un` kvm Bạn cần đăng xuất và đăng nhập lại để các thành viên trong nhóm mới có hiệu lực: 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ị các thông tin như dưới đâ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, nếu có lỗi nào đó 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, chỉ cần cài đặt gói bridge-utils apt-get install bridge-utils …và cấu hình một bridge. Mở /etc/network/interfaces: vi /etc/network/interfaces Trước khi sửa đổi tập tin sẽ trông như sau: # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 Bạn tiến hành sửa lại như dưới đây: # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.0.100 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off (Hãy chắc chắn rằng các thiết lập chính xác đối với mạng của bạn!) Khởi động lại mạng: /etc/init.d/networking restart Và chạy: 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 Met ric:1 RX packets:17 errors:0 dropped:0 overruns:0 f rame:0 TX packets:17 errors:0 dropped:0 overruns:0 c arrier:0 collisions:0 txqueuelen:0 RX bytes:1196 (1.1 KB) TX bytes:1966 (1.9 KB ) eth0 Link encap:Ethernet HWaddr 00:1e:90:f3:f0:02 UP BROADCAST RUNNING MULTICAST MTU:1500 Met ric:1 RX packets:35100 errors:0 dropped:0 overruns: 0 frame:0 TX packets:18619 errors:0 dropped:0 overruns: 0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:51126318 (51.1 MB) TX bytes:1521772 (1.5 MB) Interrupt:41 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:0 errors:0 dropped:0 overruns:0 fr ame:0 TX packets:0 errors:0 dropped:0 overruns:0 ca rrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) virbr0 Link encap:Ethernet HWaddr 46:b4:d1:49:75:eb inet addr:192.168.122.1 Bcast:192.168.122.25 5 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 fr ame:0 TX packets:0 errors:0 dropped:0 overruns:0 ca rrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) root@server1:~# Trước khi chúng ta bắt đầu máy ảo đầu tiên, nên khởi động lại hệ thống: Reboot Nếu không có thể sảy ra thông báo lỗi open /dev/kvm: Permission denied trong thư mục /var/log/libvirt/qemu/. 3. Tạo một image-based VM Bây giờ chúng ta có thể tạo ra máy ảo đầu tiên - image-based VM (nếu bạn muốn có thật nhiều lượng traffic và các thao tác đọc – ghi cho máy ảo, hãy sử dụng một LVM-based VM như mục 6 sau đây sẽ giới thiệu. Image-based VM gây nặng cho đĩa cứng IO). Ở đây tôi muốn tạo máy ảo của mình trong thư mục /var/lib/libvirt/images/ (không thể tạo trong /root bởi user libvirt-qemu không có quyền đọc trong thư thư mục này). Chúng tôi sẽ tạo một thư mục mới cho mỗi máy ảo, chẳng hạn như /var/lib/libvirt/images/vm1, /var/lib/libvirt/images/vm2, /var/lib/libvirt/images/vm3,… bởi vì mỗi máy ảo sẽ có một thư mục con có tên ubuntu-kvm tương ứng với mỗi thư mục vừa tạo. Nếu cố gắng tạo một thư mục thứ hai trong /var/lib/libvirt/images/vm1, bạn sẽ nhận được thông báo lỗi ubuntu-kvm already exists (trừ khi bạn chạy vmbuilder với đối số dest=DESTDIR): root@server1:/var/lib/libvirt/images/vm1# vmbuilder kvm ubuntu -c vm2.cfg 2009-05-07 16:32:44,185 INFO Cleaning up ubuntu-kvm already exists root@server1:/var/lib/libvirt/images/vm1# Chúng tôi sử dụng công cụ vmbuilder để tạo các máy ảo (tìm hiểu thêm vmbuilder tại đây). Vmbuilder sử dụng một template để tạo máy ảo – template này nằm trong thư mục /etc/vmbuilder/libvirt/. Đầu tiên ta tạo một bản sao: mkdir -p /var/lib/libvirt/images/vm1/mytemplates/libvirt cp /etc/vmbuilder/libvirt/* /var/lib/libvirt/images/vm1/mytemplates/libvirt/ Tiếp theo là đến phần phân vùng cho VM. Chúng ta tạo một tập tin có tên vmbuilder.partition vi /var/lib/libvirt/images/vm1/vmbuilder.partition … và xác định phân vùng mong muốn như sau: root 8000 swap 4000 /var 20000 Như vậy phân vùng root (/) được xác định với kích thước 8000MB, một phân vùng swap 4000MB, và một phân vùng /var với 20000MB. Dòng có tác dụng làm cho các phân vùng bên dưới nó (ở đây là /var) là một ảnh đĩa riêng biệt. Tức là tạo ra hai ảnh đĩa, một cho root và swa, một cho /var. Tất nhiên, bạn được tự do định nghĩa bất cứ phân vùng nào mình thích (miễn là bao gồm cả root và swap). Tôi muốn cài đặt openssh-server trong VM. Để đảm bảo rằng mỗi VM có một OpenSSH key duy nhất, chúng ta không thể cài đặt openssh-server khi tạo VM. Vì vậy giải pháp là tạo một script có tên boot.sh để thực thi khi khởi động VM lần đầu tiên. Nó sẽ cài đặt openssh-server (với một key duy nhất) và có hiệu lực với user (ở đây sử dụng username mặc định là administrator với mật khẩu mặc định quantrimang) để thay đổi mật khẩu khi đăng nhập lần đầu tiên. vi /var/lib/libvirt/images/vm1/boot.sh # This script will run the first time the virtual machine boots # It is ran as root. # Expire the user account passwd -e administrator # Install openssh-server apt-get update apt-get install -qqy force-yes openssh-server [...]... đổi hình ảnh sang LVM-based VM Trước tiên hãy đi tới thư mục ubuntu -kvm/ của VM… cd /var/lib/libvirt/images/vm5 /ubuntu -kvm/ … và tìm tên của hình ảnh: s –l root@server1:/var/lib/libvirt/images/vm5 /ubuntu -kvm# ls -l total 622732 -rw-r r 1 root root 637796352 2011-11-16 12:49 tmpN27tbO.qcow2 root@server1:/var/lib/libvirt/images/vm5 /ubuntu -kvm# Sau khi xác được tên của ảnh (tmpN27tbO.qcow2), chúng ta... trong ubuntu -kvm/ - thư mục con của thư mục VM: s -l /var/lib/libvirt/images/vm1 /ubuntu -kvm/ root@server1:/var/lib/libvirt/images/vm1# ls -l /var/lib/libvirt/images/vm1 /ubuntu -kvm/ total 627736 -rw-r r 1 root root 315424768 2011-11-16 11:17 tmpYxLTYF.qcow2 -rw-r r 1 root root 327614464 2011-11-16 11:18 tmpyyxauA.qcow2 root@server1:/var/lib/libvirt/images/vm1 4 Tạo một VM thứ hai Tương tự như trên, ... có thể kết nối tới VM với SSH client như PuTTY; đăng nhập với username và password mặc định Lần đăng nhập đầu tiên bạn sẽ được yêu cầu thay đổi password List Hiển thị các máy ảo đang chạy: virsh # list Id Name State -1 vm1 running virsh # Để dừng một máy ảo, chạy lệnh: shutdown vm1 Để dừng máy ảo ngay lập tức (như việc rút phích cắm điện): destroy vm1 Tạm dừng máy ảo: suspend vm1 Tiếp... ý thay đổi username administrator với tên đăng nhập mặc định của bạn (Xem thêm tại đây) Hoặc bạn cũng có thể định nghĩa một script "first login" tại đây Bây giờ hãy nhìn vào: vmbuilder kvm ubuntu –help để tìm hiểu thêm về các tùy chọn có sẵn Tiếp theo, tạo VM đầu tiên, vm1, chúng ta vào thư mục VM… cd /var/lib/libvirt/images/vm1/ … và chạy vmbuilder: vmbuilder kvm ubuntu suite=oneiric flavour=virtual... vmbuilder.partition và boot.sh, cũng không cần chỉnh sửa template, nhưng có thể dễ dàng sử dụng các tập tin đã tồn tại: cd /var/lib/libvirt/images/vm1/ vmbuilder kvm ubuntu suite=oneiric flavour=virtual arch=amd64 -mirror=http://de.archive .ubuntu. com /ubuntu -o -libvirt=qemu:///system ip=192.168.0.102 -gw=192.168.0.1 part=vmbuilder.partition templates=mytemplates user=administrator -name=Administrator... vm2 -kvm ) 5 Quản trị máy ảo Các máy cảo có thể được quản trị thông qua virsh, là một "virtual shell" Để kết nối tới virtual shell ta chạy: virsh connect qemu:///system virtual shell sẽ trông như sau: root@server1:~# virsh connect qemu:///system Welcome to virsh, the virtualization interactive terminal Type: 'help' for help with commands 'quit' to quit virsh # Bây giờ có thể nhập vào lệnh sau trên. .. thị toàn bộ máy ảo, chạy lệnh: list –all Để hiển thị toàn bộ máy ảo đang và không hoạt động: virsh # list all Id Name State vm1 shut off - vm2 shut off virsh # Trước khi khởi động máy ảo mới lần đầu tiên, bạn cần định nghĩa nó từ tập tin xml trong thư mục /etc/libvirt/qemu/: define /etc/libvirt/qemu/vm1.xml Lưu ý rằng bất cứ khi nào chỉnh sửa tập tin xml của máy ảo trong /etc/libvirt/qemu/... định các gói Ubuntu muốn cài đặt trong quá trình khởi tạo VM (đây là lý do tại sao không nên thêm openssh-server vào danh sách và sử dụng script để thay thế) bridge thiết lập một bridge network; như bridge br0 mà chúng ta đã tạo trong mục 2 Bây giờ là lúc xác định bridge Trong dòng mirror bạn có thể chỉ định một kho lưu trữ chính thức của Ubuntu, chẳng hạn http://de.archive .ubuntu. com /ubuntu Nếu bỏ... auto - currently set to 256 Block device 252:1 root@server1:~# Bây giờ chúng ta tạo máy ảo vm5 như một LVM-based VM Chúng ta có thể dùng lại lệnh vmbuilder Vmbuilder biết rõ tùy chọn raw cho phép ghi máy ảo tới một thiết bị block (ví dụ /dev/vg0/vm5) – và không có lỗi nào xảy ra Tuy nhiên bạn không thể khở động máy ảo trên, do đó cần tạo một vm5 như image-based VM đầu tiên và sau đó chuyển đổi sang LVM-based... /var/lib/libvirt/images/vm2/mytemplates/libvirt/ vi /var/lib/libvirt/images/vm2/vmbuilder.partition vi /var/lib/libvirt/images/vm2/boot.sh cd /var/lib/libvirt/images/vm2/ vmbuilder kvm ubuntu suite=oneiric flavour=virtual arch=amd64 -mirror=http://de.archive .ubuntu. com /ubuntu -o -libvirt=qemu:///system ip=192.168.0.102 -gw=192.168.0.1 part=vmbuilder.partition -templates=mytemplates user=administrator -name=Administrator . Ảo hóa với KVM trên Ubuntu 11. 10 Công nghệ ảo hóa trong Linux với KVM (Kernel-based Virtual Machine) hẳn không còn xa lạ với các nhà quản. bày cách sử dụng KVM trên hệ thống Ubuntu 11. 10. 1. Một số lưu ý Trước hết bạn cần đảm bảo rằng phần cứng của mình hỗ trợ công nghệ ảo hóa, tức là CPU

Ngày đăng: 18/02/2014, 09:20

Hình ảnh liên quan

Sử dụng lệnh qemu-img để chuyển đổi hình ảnh sang LVM-based VM. Trước tiên hãy đi tới thư mục ubuntu-kvm/ của VM…  - Tài liệu Ảo hóa với KVM trên Ubuntu 11.10 pptx

d.

ụng lệnh qemu-img để chuyển đổi hình ảnh sang LVM-based VM. Trước tiên hãy đi tới thư mục ubuntu-kvm/ của VM… Xem tại trang 35 của tài liệu.
Tiếp theo chúng ta cần thay đổi cấu hình của VM: virsh edit vm5  - Tài liệu Ảo hóa với KVM trên Ubuntu 11.10 pptx

i.

ếp theo chúng ta cần thay đổi cấu hình của VM: virsh edit vm5 Xem tại trang 36 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan