Hướng dn chy OpenVZ
Ngu
n:quantrimang.com
Mt trong nhiu công c o hoá dành cho Linux để bn la chn là
OpenVZ, phn mm min phí thuc Virtuozzo do SWsoft cung cp. OpenVZ
và Virtuozzo là các gii pháp o hoá mc h điu hành, cho phép phân
vùng server thành các máy ch riêng o (VPS). Do qua mt vòng tài liu
hướng dn trên chính OpenVZ, bn s thy để hiu được đầy đủ sâu sc
v công c này thông qua các tài liu ca nhà sn xut không h “d xơi”,
thm chí còn “đáng s”. Chúng ta th tìm cách thc d dàng hơn để khi đầu
vi OpenVZ: trên h thng Debian Etch.
Mt năm trước đây, người dùng thường s dng Virtuozzo 3.0 cho Linux. Nhưng
không phi túi người nào cũng rng rnh để “tu” được bn quyn Virtuozzo.
OpenVZ m ra gii pháp khác.
Khi nào nên s dng OpenVZ thay vì VMware Server hay
Xen? Điu đó tu thuc vào tng trường hp c th. Vi
các hot động không cn chy đa h điu này nhưng có
nhiu khách, to hu hết phn cng hoc cung cp s
phân tách gia các dch v (như phân tách Web server
gia file server và print server chng hn) vi kh năng
tràn ti thiu, OpenVZ là la chn tt. Nhưng khi mun
chy h điu hành non-Linux (như FreeBSD hay Windows Server) trên máy trm
Linux, nên s dng VMware hơn là OpenVZ (hoc nếu mang tính thương mi và
bn quyn nhiu hơn, nên dùng Virtuozzo), vì OpenVZ không cung cp kh
năng chy đa h điu hành.
OpenVZ h tr nhiu nn tng vi x lý hơn là các bn luân phiên. VMware
Server và Xen có th dùng đưc cho dòng x86, AMD 64; còn OpenVZ được
chp nhn dòng x86, AMD64, Itanium (IA64), PowerPC, và UltraSPARC. Chú
ý là hin nay chưa có các kernel (nhân h điu hành) PowerPC xây dng trước
cho Debian, nhưng OpenVZ được h tr trên PowerPC.
Cài đặt OpenVZ
Có th chy OpenVZ trên bt k h thng host nào, ví d đây là Debian. Bn
hoàn toàn có th dùng Ubuntu, Fedora Core, Gentoo hoc bt k phân phi nào
khác vi mt mu h điu hành (OS template). Mu h điu hành là tp hp các
gói dùng để to VPS, môi trường o AKA trong ngôn ng nước ngoài ca
OpenVZ.
Các nhân Debian cho khách OpenVZ được ly t vùng lưu tr OpenVZ, nhưng
ch cho Etch. S dng kernel gn đây nht cùng các gói “linux-header” ly t kho
lưu tr OpenVZ, cài đặt chúng bng lnh -i linux-image-2.6.18-openvz-
686_02_i386.debdpkg -i linux-headers-2.6.18-openvz-
686_02_i386.deb. Nh thay tên gói trong ví d bng tên file bn download v.
Khi cài đặt các gói, dpkg đưa ra hai liên kết biu tượng tr ti thư mc thiếu.
Nhưng, cho đến nay chưa có vn đề xut hin khi dùng OpenVZ. Vì vy, các
bn không cn phi lo lng.
Sau khi cài kernel và các header, bn cn thêm mt vài tham s (tìm trên
OpenVZ wiki) vào thư mc /etc/sysctl.conf để chun b cho h thng chy
OpenVZ. Ví d, bn cn nói vi h thng cho phép gi địa ch IP để các VPS
(máy ch riêng o) cũng s dng được mng chia s. Ch cn thêm các dòng
này vào sysct.conf nếu chưa có, hoc kim tra để chc chn xem chúng đã khp
nhau chưa:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
Sau khi cài đặt kernel và thc hin các thay đổi này, bn cn khi động li máy.
Nhân kernel OpenVZ s được thiết lp làm kernel mc định trong menu GRUB
đã sn sàng.
Tiếp theo, cn s dng các tin ích OpenVZ, dùng lnh sau apt-get install
vzctl. Lnh này s cài đặt các gói vzctl và vzquota, gm nhiu tin ích (như
vzctl) cn để qun lý OpenVZ.
OpenVZ s được thiết lp khi động trong quá trình boot sau khi cài đặt các tin
ích này. Nếu mun s dng ngay bây gi, bn cn khi động OpenVZ “th
công” (hoc khi động li). Khi động OpenVZ bng câu lnh init script:
/etc/init.d/vz start
Thiết lp h thng khách
Bây gi là thi gian thu thp mt vài template và cài đặt h điu hành khách
(Guest Operating System). Bn có th tìm thy mt s được to trước đó trên
website download ca OpenVZ, như các phiên bn ca Fedora Core, Debian
Sarge và Debian Etch, CentOS, Gentoo, Mandriva, và openSUSE. Chú ý là các
khuôn mu này được dùng cho tng loi vi x lý c th. Vì thế hãy cn thn,
đừng download nhm phiên bn mu AMD64 hay UltraSPARC nếu bn s chy
nó trên h thng dòng x86.
Bn cũng nên biết đến thư mc contrib cha mu h điu hành do cng đồng
OpenVZ lp ra. Đây không phi là các mu “chính thc”, nhưng nếu mun chy
Ubuntu, Slackware, AltLinux hay phân phi nào khác không thy trong các mu
OpenVZ, bn nên xem trong thư mc này.
Nếu mun chy phân phi không có mu, có th xem trong phn hướng dn
OpenVZ wiki v các mu h điu hành. OpenVZ không phi là phn mm ci
tiến hơn VMware hay mt s k thut o hoá khác. Cài đặt mt phân phi Linux
trên VMware Server hay VMware Workstation thường đơn gin như chy qua
th tc cài đặt ca phân phi. Trong OpenVZ thì phc tp hơn. Bn cn phi tìm
hiu thêm nhiu v OpenVZ mi có th chy được hai th hin ca khách.
Các mu OS download v cn lưu tr trong thư mc /var/lib/vz/template/cache.
Chúng được để dng tarred và gzipped khi bn download v. Nếu mun gi
nguyên dng, đừng gii nén chúng.
Để cài đặt h thng, s dng tin ích vzctl. Có mt tin xu và mt tin tt đây.
Tin xu là tin ích vzctl không d dùng như các công c đồ ho giao din người
dùng (GUI) trong Virtuozzo. Tin tt là vzctl không quá khó s dng. Nó có th
đọc theo kch bn (script) và không phân bit ch hoa ch thường. Nếu bn
qun lý nhiu h thng OpenVZ, bn cn viết cú pháp vào bt k lúc nào. Nếu
không to hay “dn dp” các h thng khách OpenVZ, lượng thi gian tiêu tn
để vzctl qun lý trang và phác ho tu chn là rt ln. Chúng ta hãy cùng xem
mt s lnh ph biến nht.
Cú pháp to h thng khách là vzctl create vpsid --ostemplate
ostemplatename. Trong đó vpsid là s gán cho h thng mi. OpenVZ đảo
ngược các ID thp dưới 100 để s dng ni b. Vì thế tôi thường gán ID t 1001
tr lên. Trong trường hp nếu bn download mu h điu hành Debian Sarge
cho dòng x86, chy lnh sau:
vzctl create 1001 --ostemplate debian-3.1-i386-minimal
Khi host khách được cài đặt, bn có th tìm thy file h thng trong thư mc
/var/lib/vz/root/vpsid và phm vi riêng /var/lib/vz/private/vpsid (tr khi thay đổi
các thiết lp dùng --root mc định hoc tu chn --private). Thư mc riêng
bao gm các file riêng cho môi trường o (VE).
Nếu bn to khách vi mã s vz là 1001, file h thng gc nm
/var/lib/vz/root/1001. File này s tr nên hu ích khi bn mun truy cp trc tiếp
file (như khi admin thc hin cu hình ngăn khách khi động theo cách thông
thường chng hn) hoc trong các mc đích sao lưu.
Bây gi chúng ta s cài đặt mng dù không my d dàng:
vzctl set --ipadd ipaddr --nameserver nameserverIP --
hostname hostname --save
Tham s --ipadd gán cho địa ch IP giao din venet đầu tiên trong h điu
hành khách. Tham s --hostname gán tên host cho VPS (máy ch riêng o),
và tham s --nameserver cung cp tên server. Giao din venet không cung
cp cho các h thng khách OpenVZ mc định địa ch vt lý MAC. Có nghĩa là,
bn không th ly địa ch giao din qua DHCP.
Tuy nhiên, đến nay, mt s cư dân cng đồng OpenVZ đã b sung thêm kiu
giao din mi gi là veth, có th cung cp địa ch MAC. Thiết b veth cũng cho
phép người dùng cài đặt server DHCP bên trong h điu hành khách. Người
dùng có th cài đặt các thiết lp mng riêng, nhưng không dùng được thiết b
venet. Nếu mun cung cp giao din veth thay vì venet, bn có th xem thêm
phn hướng dn trên OpenVZ wiki.
Qun lý OpenVZ
Khi VPS được cài đặt, khi động h điu hành khách bng cách chy vzctl
start vpsid, trong đó vpsid là ID bn gán cho khách khi to ra nó.
Bn nên xem mt s thông báo v khi động VPS, kết thúc vi các t "VPS start
in progress..." (VPS đang trong quá trình khi động). Khi đó, VPS đang chy vi
lnh vzlist. Sau khi chy vzlist, bn s thy như sau:
VPSID NPROC STATUS IP_ADDR HOSTNAME
1002 4 running 10.0.1.34 vroomfondle
S dng tu chn -a để hin th tt c server riêng o (VPS), cho dù chúng đang
chy hay không. Nếu mun xem tài nguyên nào đang được khai thác, và xem
dung lượng b nh đang được s dng là bao nhiêu, chy lnh vzcalc -v
vpsid. Bn s thy như sau:
Resource Current(%) Promised(%) Max(%)
Low Mem 0.13 1.20 1.20
Total RAM 0.55 n/a n/a
Mem + Swap 0.36 1.83 n/a
Alloc. Mem 0.67 1.83 13.82
Num. Proc 0.06 n/a 0.40
--------------------------------------------
Memory 0.67 1.83 13.82
Thông s trên cho bn biết dung lượng b nh đang được VPS dùng là bao
nhiêu, bao nhiêu được cp phát cho VPS và mc tăng lên có th là bao nhiêu.
Các tham s VPS s dng tu chn -o. (Xem trên trang vzcalc man để biết thêm
chi tiết).
Mc định, các VPS không được khi động cùng lúc vi máy tính. Nhưng trong
hu hết mi trường hp, người ta thường mun VPS được load sau khi h thng
khi động li. Thay đổi thiết lp này, dùng vzctl như sau:
vzctl set vpsid --onboot yes --save
Tin ích vzctl cũng được dùng để thiết lp tham s h thng, như tng dung
lượng, tài nguyên CPU, truy cp mô hình bng IP (iptable), v.v…. Chúng ta cùng
xem mt ví d.
Mt trong nhng đim khó chu trong OpenVZ là không d dàng chút nào khi nói
“cung cp cho RAM VPS 256MB”. Thay vào đó, bn phi điu chnh cp tham s
đọc qua mt s tài liu k thut thì mi tìm ra được cách x lý OpenVZ vi b
nh.
Để đơn gin hơn mt chút, tăng dung lượng RAM t 256MB lên 1GB. Sau đó
cách thiết lp các tham s vmguarpage (b nh cp phát cho VPS) và
privvmpage (dung lượng ln b nh nht được cp phát) như sau:
vzctl set vpsid --vmguarpages 65536 --save
vzctl set vpsid --privvmpages 262144 --save
Mt cách khác trc quan hơn là tính toán tng dung lượng RAM bng “các
trang” trên din đàn SWsoft forum. Cn nhân thêm dung lượng RAM 256 bng
cách:
vzctl set vpsid --vmguarpages $((256 * 256)) --save
vzctl set vpsid --privvmpages $((256 * 1024)) --save
Đọc trang man và wiki OpenVZ, cùng mt s tài liu khác để biết thêm thông tin
chi tiết.