ทดลองติดตั้ง Xen บน Lenny
Xen เป็นซอฟต์แวร์ที่ใช้ทำ virtualization ในทางทฤษฎีสามารถรัน guest OS ใด ๆ ก็ได้ โดยมีข้อแม้คือ ซีพียูต้องรองรับการทำ virtualization ด้วย แต่ถ้าซีพียูไม่รองรับ ต้องใช้กับ OS ที่ดัดแปลงให้ใช้กับ Xen เท่านั้น
ข้อดีคือ เร็วพอควร และสามารถ swap หน่วยความจำได้ ทำให้ใช้งานได้เหมือนในระบบลินุกซ์ปกติ
ข้อเสียคือ เนื่องจากแยกเคอร์เนลและฮาร์ดแวร์กันอย่างเด็ดขาด จึงทำให้ต้องการฮาร์ดแวร์มากกว่าปกติ และหากหน่วยความจำที่แบ่งให้แต่ละ guest OS ไม่พอ Xen ก็จะสลับหน่วยความจำลงดิสก์ ทำให้ระบบทำงานช้ามาก (ซึ่งจะมีผลกับทุก ๆ โพรเซสที่ยังค้างอยู่ในหน่วยความจำ คือช้าทั้งระบบ)
ข้อกำหนด
CPU: Intel E2140
M/B: ECS P4M890T-M V2.0
RAM: 4GB
host: server1.example.com, 192.168.1.31
guest-101: test.example.com, 192.168.1.131, bridged
xen-physical-partition: /dev/sda10,xvda
apt-proxy: 192.168.1.3:9999
ติดตั้ง Xen - dom0
เริ่มติดตั้งบน lenny
# aptitude install xen-hypervisor-3.2-1-i386 xen-linux-system-2.6.26-2-xen-686\ xen-utils-3.2-1 xenstore-utils xen-shell
จะใช้เน็ตเวิร์กแบบ bridge
# vi /etc/xen/xend-config.sxp
... # (network-script network-dummy) (network-script network-bridge) ...
บูตใหม่
# shutdown -r now
ตรวจผลหลังการบูต
# uname -r 2.6.26-2-xen-686
ติดตั้ง domU
สมมุติว่าจะติดตั้ง xen-domU ไว้ที่ฮาร์ดดิสก์จริง /dev/sda10 ที่แบ่งพาร์ทิชันเป็น ext3 ไว้เรียบร้อยแล้ว โดยจะเมานท์ /dev/sda10 เป็น /dev/xvda ใน xen และแบ่งพาร์ทิชันต่าง ๆ ของ domU ใน /dev/xvda
# xm block-attach 0 phy:/dev/sda10 xvda w
ใช้ fdisk แบ่งพาร์ทิชันตามใจชอบ
# fdisk /dev/xvda
ในที่นี้สมมุติว่า /dev/xvda5 เมานท์เป็น / และ /dev/xvda6 ใช้เป็น swap
ฟอร์แมต ext3 และ swap ตามลำดับ
# mkfs.ext3 /dev/xvda5 # mkswap /dev/xvda6
ใช้วิธีติดตั้งแบบ debootstrap เนื่องจากเร็วกว่าวิธีอื่น
ติดตั้ง debootstrap
# aptitude install debootstrap
ติดตั้ง lenny บน /dev/xvda5 ผ่าน apt-proxy 192.168.1.3:9999 และเนื่องจากซีพียูไม่รองรับการทำ virtualize จึงต้องติดตั้งเคอร์เนลที่แปลงมาใช้กับ xen แล้ว
# mkdir /mnt/tmp # mount /dev/xvda5 /mnt/tmp # debootstrap lenny /mnt/tmp http://192.168.1.3:9999/debian # mount -t proc none /mnt/tmp/proc # mount -o bind /dev /mnt/tmp/dev # mount -t sysfs none /mnt/tmp/sys # cp /etc/apt/sources.list /mnt/tmp/etc/apt/ # ehco 'test.example.com' > /mnt/tmp/etc/hostname # chroot /mnt/tmp
test# vi /etc/network/interface
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.131
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.3
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.1.3
dns-search example.com
test# vi /etc/fstab
... # proc /proc proc defaults 0 0 /dev/xvda5 / ext3 errors=remount-ro 0 1 /dev/xvda6 none swap sw 0 0
test# aptitude update test# aptitude install console-data locales ssh test# dpkg-reconfigure locales test# aptitude upgrade test# aptitude install linux-image-2.6.26-2-xen-686 test# passwd test# exit # umount /mnt/tmp/sys # umount /mnt/tmp/dev # umount /mnt/tmp/proc # umount /mnt/tmp # xm block-detach 0 xvda
สร้างไฟล์คอนฟิก
# vi /etc/xen/101.cfg
# # Kernel + memory size # kernel = '/boot/vmlinuz-2.6.26-2-xen-686' ramdisk = '/boot/initrd.img-2.6.26-2-xen-686' memory = '1024' # # Disk device(s). # root = '/dev/xvda5 ro' disk = [ 'phy:sda10,xvda,w' ] # # Hostname # name = 'test.example.com' # # Networking # vif = [ 'bridge=eth0' ] # # Behaviour # on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart'
เริ่ม domU - 101.cfg
# xm create 101.cfg
ตรวจสถานะ
# xm list
เข้าใช้งาน domU ด้วย ssh
# ssh root@test.example.com
เสร็จแล้วครับ
ที่มา
- wd's blog
- Printer-friendly version
- Login or register to post comments
|
ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้ |
















Re: ทดลองติดตั้ง Xen บน Lenny
ต้องลองกับ ซีพียู ที่ มี intel-VT หรือ AMD-V รึเปล่าครับ
Re: ทดลองติดตั้ง Xen บน Lenny
ไม่จำเป็นครับ แต่ถ้าใช้กับซีพียูดังกล่าว จะสามารถใช้กับโอเอสที่ไม่ต้องปรับแต่งได้ครับ