2008/Nov/03

เริ่มจากการได้รับมอบหมายให้ทำรวม server dev ทั้งหลายแหล่ในที่ทำงานให้มาอยู่ใน server เครื่องใหม่ที่เพิ่งซื้อมา  ก็เลยตัดสินใจว่าจะใช้ Xen แก้ปัญหานี้
ซึ่ง dev server ส่วนใหญ่ใน office จะเป็น CentOS อยู่แล้ว มีทั้งเวอร์ชั่น 4 และ 5 รันอยู่บน PC กระป๋องพันทิพย์

Server ที่จะใช้งานเป็น Xen Host ก็จะเป็น Dell T100 , CPU xeon X3220@2.4GHz , RAM 4GB มี HDD 500 GB ทำ RAID1 เอาไว้
ที่ตัว Xen Host ก็ลงเป็น CentOS 5.2 x86_64 ที่มี kernel xen รันอยู่

เริ่มแรกก็ไปหาโหลด Linux live cd ชื่อ Virt-P2V มาใช้งาน ซึ่งเป็นเครื่องมือในการย้ายจาก server linux ไปสู่ virtual server ที่อยู่ใน xen ได้อย่างง่ายๆ  
ไฟล์ iso ที่โหลดมาก็มีขนาดแค่ 158 MB  ปัจจุบันเป็นเวอร์ชั่น 0.9.7  เมื่อเผาแผ่น cd เสร็จก็มาเริ่มกันเลย

เริ่มจากการบูต server ตัวที่ต้องการ migrate ไปอยู่ใน xen ด้วยแผ่น Virt-P2V แผ่นนี้
หลัง จากนั้นก็กรอกข้อมูลในหน้าจอไปเรื่อยๆ สิ่งที่ต้องกรอกก็มีพวก IP ของเครื่องนี้ก็กำหนดให้เป็นแบบ static ซะ  แล้วก็เลือก IP ของเครื่อง Xen Host ที่จะย้ายไปอยู่ในนั้น
หลังจากกำหนดค่าพวกนั้นเสร็จ ก็จะเป็นการ copy ไปสร้าง image ไฟล์ที่เครื่องเป้าหมาย
โดย จะไปอยู่ในพาธ /var/lib/xen/images/ ของเครื่อง Xen Host โดยจะไปสร้างไฟล์ให้ 2 ไฟล์คือ .conf กับ .img ซึ่ง .conf ก็จะเป็นพวกค่าเซ็ตติ้งต่างๆ ของ host ที่จะย้ายไป 
ส่วน .img ก็จะเป็นอิมเมจของ hard disk ทั้งก้อนของเครื่องที่เราจะ migrate ซึ่งจะมีขนาดเท่ากับความจุของ hard disk จริงๆ  (hard disk 40GB ใช้เวลาในการสร้างไฟล์ .img ที่ Xen Host ประมาณ 1 ชม.)

ขั้นตอนต่อไปคือการไปคอนฟิกให้ Xen Host สามารถบูท linux จาก image ไฟล์ที่เราสร้างไปในขั้นตอนก่อนหน้านี้

เมื่อเข้าไปดูในพาธ  /var/lib/xen/images ก็จะพบว่ามีไฟล์ 2 ไฟล์เกิดขึ้น ซึ่งจะมีชื่อประมาณนี้
p2v-localhost_localdomain-200811030729.conf กับ p2v-localhost_localdomain-200811030729-hda.img
อย่าง แรกที่ผมทำคือ rename ชื่อไฟล์ทั้ง 2 ให้สั้นเข้าใจง่ายจะได้รู้ว่ามันเป็นอิมเมจไฟล์ของเครื่องไหน  ในที่นี้ผมใช้ชื่อว่า dev74  ดังนั้นไฟล์ทั้ง 2 ที่ผมได้จะมีชื่อใหม่คือ dev74.conf กับ dev74.img

เมื่อเปิดไฟล์ dev74.conf ดูก็จะมีหน้าตาแบบนี้

<domain type="xen">
  <name>localhost_localdomain</name>
  <uuid>144f804583b3f66e3d4b3d61b8a56709</uuid>
  <memory>524288</memory>
  <maxmem>524288</maxmem>
  <vcpu>1</vcpu>
  <os>
    <type>hvm</type>
    <loader>/usr/lib/xen/boot/hvmloader</loader>
    <boot dev="hd"/>
  </os>
  <features>
    <pae/>
    <acpi/>
    <apic/>
  </features>
  <clock sync="localtime"/>
  <devices>
    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
    <interface type="user">
      <mac address="00:16:3e:d5:a4:7a"/>
    </interface>
    <graphics type="vnc"/>
    <disk type="file" device="disk">
      <source file="/var/lib/xen/images/p2v-localhost_localdomain-200811030729-hda.img"/>
      <target dev="hda"/>
    </disk>
  </devices>
</domain>

 

edit @ 3 Nov 2008 15:58:54 by zounds-garden

2008/Oct/31

เขียนไว้กันลืม  พอดีต้องทำ consolidate server ใน office 4-5 ตัวให้มาอยู่ใน server ใหม่ตัวเดียว

ซึ่งก็เลือกใช้ Xen แทนที่จะใช้ VMware เหมือนคนอื่นๆเค้า

server ตัวแรกที่ย้ายมา จะเป็น CentOS 4.6 ที่รันอยู่ใน  VMware server บน Linux Host ที่เป็น CentOS 4.6 แบบ32 bitเหมือนกัน

 งานหลักๆจะทำตาม  เว็บนี้ เกือบหมด ยกเว้นส่วนของการเขียนคอนฟิกไฟล์ของ DomU

ซึ่งเราลองทำตามมันดันไม่ได้  สั่ง xm create {ชื่อ vm}  ก็ดันไม่ขึ้น

ไปๆมาๆ เลยสั่ง chroot เข้าไปดูใน image file ที่แปลงมาจาก vmware อีกรอบ

ก็พบว่าดันเสือกเขียนชื่อของ kernel linux ผิดไปซะงั้น -*-

พอแก้ที่ใน image file เสร็จก็ออกมาเขียนไฟล์คอนฟิกของ DomU ตัวนี้อีกที

ตามตัวอย่างใน เว็บนี้ ก็เลยใช้งานได้ 

ที่จริงแล้วอาจจะเพราะว่าแก้จากเรื่อง disk image ก็เป็นได้  เพราะเปลี่ยนจาก tap มาเป็น file แทน

 

เอาตัวอย่างไฟล์คอนฟิกมาให้ดูเล็กน้อย

name = "dev18"
uuid = "465098f1237e8506522156c3080e178c"
memory = "512"
vcpus=1
localtime=0
builder="linux"
bootloader="/usr/bin/pygrub"
#disk = [ 'tap:aio:/data/exports/dev18.img,xvda,w', ]
disk = [ 'file:/data/exports/dev18.img,xvda,w', ]
extra="TERM=xterm"
vif = [ 'mac=00:16:3e:09:02:7d, bridge=xenbr0', ]
vfb = ["type=vnc,vncunused=1"]
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"

จากนั้นก็สั่ง start DomU  อันนี้

[root@DellT100 xen]# xm create dev18
Using config file "./dev18".
Started domain dev18

จะเห็นว่ามันขึ้นว่า Started domain dev18 ตัวนี้แล้ว  เมื่อลองสั่ง xm list ก็จะได้ผลลัพธ์ดังนี้

[root@DellT100 xen]# xm list
Name                    ID Mem(MiB) VCPUs State   Time(s)
Domain-0                0     3480     4 r-----   2952.5
dev18                  12      511     1 -b----      9.5

จากนั้นก็เข้าไปที่ dev18 นี้ทาง console ของโปรแกรม virt-manager เพื่อแก้ไขค่าของ network eth0 อีกที  

edit @ 31 Oct 2008 13:00:21 by zounds-garden

2006/Jan/31

หุหุในที่สุดก็กลับมาแล้ว หลังจากดองเค็มได้ที่ ที่จริงมันก็ไม่ได้ยุ่งอะไรมากมายหรอก

จริงๆเพราะว่าขี้เกียจ + เวลาจะเข้ามา update blog ที่ไร exteen จะต้องเดี้ยงทุกที่ -*- (ตรูมันตัวซวย หรือว่าโชคร้ายกันฟระ)

ที่จริงก็กะจะไปทำ blog ใหม่ที่ blogspot เลยแหละ จดชื่อไว้แล้วด้วย แต่ก็เขียนได้ 2 entry ก็มีอันดองเค็มอีกจนได้

แต่วันนี้พี่โป้งส่ง link URL อันนึงมาให้ถึงได้กลับมาเขียนอีกครั้ง

URL นั้นคือ http://d.hatena.ne.jp/thomr/20060129


ลองเลื่อนมาล่างๆหน่อยจิ แล้วจะเห็นว่ามีอะไรคุ้นๆ


ลองเอาไปจับยัดใส่วุ้นแปลภาษาก็ได้ใจความประมาณนี้

หุหุ แค่นี้ก็ปลี้มใจมากมายแล้วละ ต้องขอขอบคุณพี่โป้งด้วยนะคับ

ที่อุตส่าห์เอาข่าวนี้มากบอก ทำให้มีกำลังใจ update blog ขึ้นเยอะเลย

ไว้ดองเค็มได้ที่ จะมา update ใหม่เน้อ ...