ค้นหาเว็บไซต์

วิธีสร้างและติดตั้ง Guest Virtual Machines ใน XenServer - ตอนที่ 5


บทความนี้จะกล่าวถึงการสร้างแขกจริง (มักเรียกว่าเครื่องเสมือน) เพื่อก้าวไปข้างหน้าอย่างต่อเนื่องด้วยซีรีส์ XenServer

อัปเดต: ในเดือนพฤษภาคม 2559 Citrix ได้เปิดตัวแพลตฟอร์ม XenServer 7 เวอร์ชันใหม่ สำหรับการติดตั้ง ให้ปฏิบัติตาม: การติดตั้ง XenServer 7 ใหม่

บทความนี้จะถือว่าบทความก่อนหน้านี้ทั้งหมดเกี่ยวกับระบบเครือข่าย การแพตช์ และพื้นที่เก็บข้อมูลได้เสร็จสมบูรณ์แล้ว โชคดีที่ไม่จำเป็นต้องพูดถึงคำศัพท์ใหม่ๆ อีกต่อไป และการสร้างแขกก็สามารถเริ่มต้นได้!

การตรวจสอบระบบ

ณ จุดนี้ มีการกำหนดค่ามากมายบนโฮสต์ XenServer นี้ ซึ่งจะทำหน้าที่เป็นการทบทวนโดยย่อเกี่ยวกับสิ่งที่ได้รับการกำหนดค่าและบทความใดที่มีการอภิปรายหัวข้อนี้

  1. ติดตั้ง XenServer 6.5 ไปยังเซิร์ฟเวอร์แล้ว
    1. https://linux-console.net/citrix-xenserver-installation-and-network-configuration-in-linux/
  2. มีการใช้แพตช์ XenServer 6.5 ทั้งหมดแล้ว
    1. https://linux-console.net/install-xenserver-patches-in-linux/
  3. การสร้างทีมอินเทอร์เฟซเครือข่ายและ VLAN ถูกสร้างขึ้น
    1. https://linux-console.net/xenserver-network-lacp-bond-vlan-and-bonding-configuration/
  4. พื้นที่เก็บข้อมูล iSCSI และ ISO ถูกสร้างขึ้นเพื่อเก็บไฟล์การติดตั้งระบบปฏิบัติการและฮาร์ดดิสก์เสมือนที่แขกใช้
    1. https://linux-console.net/xenserver-create-and-add-storage-repository/

การสร้างแขกเสมือนใน XenServer

คู่มือส่วนนี้จะขึ้นอยู่กับตัวติดตั้ง ISO เพื่อบู๊ตเครื่องเกสต์ที่สร้างขึ้นใหม่และติดตั้งระบบปฏิบัติการ อย่าลืมอ่านบทความที่สี่เพื่อดูข้อมูลเกี่ยวกับการสร้างพื้นที่เก็บข้อมูล ISO

XenServer มาพร้อมกับชุดเทมเพลตที่สามารถใช้เพื่อจัดเตรียมแขกเสมือนได้อย่างรวดเร็ว เทมเพลตเหล่านี้มีตัวเลือกทั่วไปสำหรับระบบปฏิบัติการที่เลือก ตัวเลือกต่างๆ ได้แก่ พื้นที่ฮาร์ดไดรฟ์ สถาปัตยกรรม CPU และจำนวน RAM ที่มีให้เลือก

ตัวเลือกเหล่านี้สามารถแก้ไขได้ด้วยตนเองในภายหลัง แต่สำหรับตอนนี้จะใช้เทมเพลตอย่างง่ายเพื่อแสดงการใช้งาน หากต้องการรับรายการเทมเพลตที่พร้อมใช้งาน คำสั่ง 'xe' ดั้งเดิมสามารถส่งผ่านอาร์กิวเมนต์ที่แตกต่างกันเพื่อแจ้งให้ระบบส่งคืนเทมเพลตที่พร้อมใช้งาน


xe template-list

คำสั่งนี้มีแนวโน้มที่จะส่งคืนเอาต์พุตจำนวนมาก เพื่อให้อ่านเอาต์พุตได้ง่ายขึ้น แนะนำให้ไพพ์เอาต์พุตเป็น 'less' ดังนี้:


xe template-list | less

ซึ่งจะช่วยให้แยกวิเคราะห์เทมเพลตที่มีอยู่ได้ง่ายขึ้นเพื่อค้นหาข้อมูล UUID ที่จำเป็น บทความนี้จะทำงานร่วมกับ Debian 8 Jessie แต่จะต้องใช้เทมเพลต Debian 7 Wheezy รุ่นเก่าจนกว่า Citrix จะเผยแพร่เทมเพลตใหม่ .

การเลือก Debian 7 จะไม่ส่งผลต่อการทำงานของระบบปฏิบัติการจริง (ภาพหน้าจอด้านล่างใช้ UUID ในคำสั่งเพื่อตัดเอาต์พุตปกติบางส่วนออก)


xe sr-list name-label=”Tecmint iSCSI Storage”

ด้วย UUID นี้ ข้อมูลเบื้องต้นทั้งหมดสำหรับการตั้งค่าแขกรายนี้จะได้รับแล้ว เช่นเดียวกับเกือบทุกอย่างใน XenServer คำสั่ง 'xe' อีกคำสั่งหนึ่งจะถูกนำมาใช้เพื่อจัดเตรียมแขกใหม่


xe vm-install template=”Debian Wheezy 7.0 (64-bit)” new-name-label="TecmintVM" sr-uuid=bea6caa4-ecab-8509-33a4-2cda2599fb75

UUID ที่ไฮไลต์คือ UUID ของผู้เยี่ยมชมที่เพิ่งจัดสรร มีขั้นตอนการดูแลบ้านสองสามขั้นตอนที่อาจจะทำให้สิ่งต่างๆ ง่ายขึ้นในอนาคต อย่างแรกคือการจัดเตรียมป้ายชื่อให้กับ VDI ที่สร้างขึ้นใหม่ และอย่างที่สองคือการแก้ไขข้อกำหนดฮาร์ดแวร์เริ่มต้นใดๆ ที่จัดเตรียมโดยเทมเพลต

หากต้องการดูว่าเหตุใดการตั้งชื่อ VDI จึงเป็นเรื่องสำคัญ ลองดูว่าระบบจะกำหนดอะไรให้กับ VDI โดยอัตโนมัติเมื่อจัดเตรียมโดยใช้คำสั่ง 'xe' ต่อไปนี้:


xe vbd-list vm-name-label=TecmintVM – Used to get the VDI UUID
xe vdi-list vbd-uuids=2eac0d98-485a-7c22-216c-caa920b10ea9    [Used to show naming issue]

อีกทางเลือกหนึ่งที่ใช้ได้คือการรวบรวมข้อมูลทั้งสองส่วนคือคำสั่งต่อไปนี้:


xe vm-disk-list vm=TecmintVM

ส่วนที่เป็นสีเหลืองคือข้อกังวล สำหรับหลายๆ คน ปัญหานี้เป็นเรื่องเล็กน้อย แต่สำหรับวัตถุประสงค์ในการดูแลรักษาบ้าน ควรใช้ชื่อที่สื่อความหมายมากกว่านี้เพื่อติดตามวัตถุประสงค์ของ VDI นี้โดยเฉพาะ หากต้องการเปลี่ยนชื่อ VDI เฉพาะนี้ จำเป็นต้องมี UUID ในเอาต์พุตด้านบน และจำเป็นต้องสร้างคำสั่ง 'xe' อื่น


xe vdi-param-set uuid=90611915-fb7e-485b-a0a8-31c84a59b9d8 name-label="TecmintVM Disk 0 VDI"
xe vm-disk-list vm=TecmintVM

การตั้งค่านี้อาจดูเหมือนเล็กน้อย แต่จากประสบการณ์แล้ว สิ่งนี้ได้ป้องกันปัญหาร้ายแรงเมื่อถอดที่เก็บข้อมูลออกจาก XenServer หนึ่งและพยายามแนบไปกับ XenServer อื่น สถานการณ์เฉพาะนี้ การสำรองข้อมูลเมตาของข้อมูลแขกทั้งหมดไม่สามารถกู้คืนได้บน XenServer ใหม่ และโชคดีที่ด้วยการตั้งชื่อ VDI บนแขกแต่ละคน การแมปที่เหมาะสมของแขกกับ VDI ก็สามารถทำได้ง่ายๆ โดย ป้ายชื่อ

ขั้นตอนการดูแลบ้านถัดไปสำหรับบทความนี้คือการจัดเตรียมแหล่งข้อมูลเพิ่มเติมให้กับแขกรายนี้ ตามที่จัดเตรียมไว้ แขกรายนี้จะมีหน่วยความจำมูลค่าประมาณ 256 MiB (Mebibytes) เท่านั้น แขกส่วนใหญ่ยังไม่เพียงพอ การทราบวิธีเพิ่มหน่วยความจำว่างของแขกจึงเป็นประโยชน์ เช่นเดียวกับสิ่งอื่นๆ ใน XenServer สิ่งนี้สามารถทำได้ด้วยคำสั่ง 'xe'


xe vm-param-list uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e | grep -i memory

ช่องสีเขียวด้านบนระบุว่าหน่วยความจำส่วนใหญ่ที่แขกรายนี้เคยมีคือประมาณ 256 MiB สำหรับวัตถุประสงค์ในการทดสอบ ถือว่าใช้ได้ แต่สำหรับระบบการใช้งานหนักทุกประเภท ถือว่าไม่เพียงพอ

หากต้องการแก้ไขค่านี้เพื่อให้แขกสามารถเข้าถึง RAM ได้มากขึ้น คุณสามารถออกคำสั่ง 'xe' ง่ายๆ โดยที่แขกปิดอยู่ ในตัวอย่างนี้ จำนวน RAM ที่จะมอบให้กับเครื่องนี้จะแสดงเป็นไบต์ แต่จะเท่ากับ 2 กิบิไบต์ ของ RAM


xe vm-memory-limits-set dynamic-max=2147483648 dynamic-min=2147483648 static-max=2147483648 static-min=2147483648 name-label=TecmintVM

โปรดสังเกตว่าจะสำรอง RAM สอง GiB สำหรับแขกรายนี้ตลอดเวลา

ตอนนี้แขกรายนี้พร้อมที่จะติดตั้งระบบปฏิบัติการแล้ว จากบทความก่อนหน้าเกี่ยวกับ Storage Repositories มีการเพิ่ม Samba share ลงใน XenServer นี้เพื่อจัดเก็บไฟล์ตัวติดตั้ง ISO ซึ่งสามารถยืนยันได้ด้วยคำสั่ง 'xe' ต่อไปนี้:


xe sr-list name-label=Remote\ ISO\ Library\ on:\ //<servername>/ISO

อย่าลืมแทนที่ <servername> ด้วยชื่อของเซิร์ฟเวอร์ Samba ที่เหมาะสมสำหรับสภาพแวดล้อมที่มีการกำหนดค่านี้เกิดขึ้น เมื่อ XenServer ได้รับการยืนยันเพื่อดูพื้นที่เก็บข้อมูล ISO จะต้องเพิ่มซีดีรอมเสมือนให้กับแขกเพื่อบูตไฟล์ ISO คู่มือนี้จะถือว่า Debian Net Installer ISO มีอยู่ในที่เก็บข้อมูล ISO


xe cd-list | grep debian


xe vm-cd-add vm=TecmintVM cd-name=debian-8-netinst.iso device=3
xe vbd-list vm-name-label=TecmintVM userdevice=3

คำสั่งข้างต้นจะแสดงรายการชื่อของ Debian ISO ก่อน คำสั่งถัดไปจะเพิ่มอุปกรณ์ CD-ROM เสมือนให้กับแขก TecmintVM และกำหนด ID อุปกรณ์เป็น 3

คำสั่งที่สามใช้เพื่อกำหนด UUID สำหรับซีดีรอมที่เพิ่มใหม่ เพื่อตั้งค่าอุปกรณ์เพื่อบูต Debian ISO ต่อไป

ขั้นตอนต่อไปคือการทำให้ซีดีรอมสามารถบูตได้ พร้อมทั้งแนะนำให้แขกติดตั้งระบบปฏิบัติการจากซีดีรอม


xe vbd-param-set uuid=3836851f-928e-599f-dc3b-3d8d8879dd18 bootable=true
xe vm-param-set uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e other-config:install-repository=cdrom

คำสั่งแรกด้านบนจะตั้งค่า CD-ROM เพื่อให้สามารถบูตได้โดยใช้ UUID ที่เน้นด้วยสีเขียวในภาพหน้าจอด้านบน คำสั่งที่สองแนะนำให้แขกใช้ซีดีรอมเป็นวิธีการติดตั้งระบบปฏิบัติการ UUID สำหรับผู้มาเยือน Tecmint จะถูกไฮไลต์ในภาพหน้าจอด้านบนเป็นสีเหลือง

ขั้นตอนสุดท้ายในการตั้งค่าแขกคือการแนบ อินเทอร์เฟซเครือข่ายเสมือน (VIF) นี่เป็นสิ่งสำคัญอย่างยิ่งสำหรับวิธีการติดตั้งนี้ เนื่องจากมีการใช้ตัวติดตั้ง Debian Network และจะต้องดึงแพ็กเกจจากที่เก็บ Debian

เมื่อมองย้อนกลับไปที่บทความเกี่ยวกับเครือข่าย XenServer VLAN พิเศษได้ถูกสร้างขึ้นแล้วสำหรับแขกรายนี้ และมันคือ VLAN 10 การใช้ 'xe' สามารถสร้างและกำหนดอินเทอร์เฟซเครือข่ายที่จำเป็นให้กับแขกรายนี้ได้


xe network-list name-description="Tecmint test VLAN 10"
xe vif-create vm-uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e network-uuid=cfe987f0-b37c-dbd7-39be-36e7bfd94cef device=0

คำสั่งแรกใช้เพื่อรับ UUID ของเครือข่ายที่สร้างขึ้นสำหรับแขกรายนี้ คำสั่งถัดไปใช้เพื่อสร้างอะแดปเตอร์เครือข่ายสำหรับแขกและต่ออะแดปเตอร์เครือข่ายเข้ากับเครือข่ายที่เหมาะสม

ขอแสดงความยินดี! ณ จุดนี้ เครื่องเสมือนพร้อมที่จะบูตและติดตั้งแล้ว! ในการเริ่มต้นแขก ให้ออกคำสั่ง 'xe' ต่อไปนี้


xe vm-start name-label=TecmintVM

หากเทอร์มินัลไม่สร้างข้อผิดพลาดใดๆ แสดงว่าแขกเริ่มต้นได้สำเร็จ คุณสามารถยืนยันการเริ่มต้นแขกที่เหมาะสมได้ด้วยคำสั่ง 'xe' ต่อไปนี้:


xe vm-list name-label=TecmintVM

ตอนนี้คำถามใหญ่ จะเข้าถึงตัวติดตั้งได้อย่างไร? นี่เป็นคำถามที่ถูกต้อง วิธีการอนุมัติของ Citrix คือการใช้ XenCenter ปัญหาคือ XenCenter ไม่ทำงานบน Linux! ดังนั้นจึงมีวิธีแก้ไขชั่วคราวเพื่อให้ผู้ใช้ไม่ต้องสร้างสถานี Windows พิเศษเพื่อเข้าถึงคอนโซลของผู้เยี่ยมชมที่ทำงานอยู่

กระบวนการนี้เกี่ยวข้องกับการสร้างอุโมงค์ SSH จากคอมพิวเตอร์ Linux ไปยังโฮสต์ XenServer จากนั้นพอร์ตจะส่งต่อการเชื่อมต่อ VNC ผ่านอุโมงค์นั้น มันฉลาดมากและทำงานได้อย่างยอดเยี่ยม แต่วิธีนี้ถือว่าผู้ใช้สามารถเข้าถึง XenServer ผ่าน SSH ได้

ขั้นตอนแรกคือการกำหนดหมายเลขโดเมนของแขกบน XenServer ซึ่งทำได้โดยใช้คำสั่งต่างๆ มากมาย


xe vm-list params=dom-id name-label=TecmintVM
xenstore-read /local/domain/1/console/vnc-port

ลำดับคำสั่งเป็นสิ่งสำคัญ! คำสั่งแรกจะส่งคืนตัวเลขที่จำเป็นสำหรับคำสั่งที่สอง

ผลลัพธ์จากทั้งสองคำสั่งมีความสำคัญ ผลลัพธ์แรกระบุ รหัสโดเมน ที่แขกใช้งานอยู่ 1 ในกรณีนี้ คำสั่งถัดไปต้องใช้หมายเลขนั้นเพื่อกำหนด พอร์ต VNC สำหรับเซสชันคอนโซลผู้เยี่ยมชม เอาต์พุตจากคำสั่งนี้จะมีพอร์ต VNC ที่สามารถใช้เพื่อเชื่อมต่อกับวิดีโอจากแขกรายนี้

เมื่อได้รับข้อมูลข้างต้นแล้ว ก็ถึงเวลาเปลี่ยนไปใช้สเตชั่น Linux และเชื่อมต่อกับ XenServer เพื่อดูเซสชันคอนโซลของแขกรายนี้ ในการทำเช่นนี้ จะมีการสร้างอุโมงค์ SSH และการส่งต่อพอร์ตจะถูกตั้งค่าเพื่อกำหนดทิศทางการเชื่อมต่อ VNC ในเครื่องผ่านอุโมงค์ SSH การเชื่อมต่อนี้จะทำจากเวิร์กสเตชัน Linux Mint 17.2 แต่ควรจะคล้ายกันสำหรับการกระจายอื่นๆ

ขั้นตอนแรกคือต้องแน่ใจว่าได้ติดตั้ง ไคลเอนต์ OpenSSH และ xtightnvcviewer บนโฮสต์ Linux ใน Linux Mint สามารถทำได้โดยใช้คำสั่งต่อไปนี้:


sudo apt-get install openssh-client xtightvncviewer

คำสั่งนี้จะติดตั้งยูทิลิตี้ที่จำเป็น ขั้นตอนต่อไปคือการสร้างอุโมงค์ SSH ไปยังโฮสต์ XenServer และตั้งค่าการส่งต่อพอร์ตไปยังพอร์ต VNC ซึ่งกำหนดก่อนหน้านี้บนโฮสต์ XenServer (5902)


ssh -L <any_port>:localhost:<VM_Port_Above> root@<server> -N
ssh -L 5902:localhost:5902 root@<servername> -N

ตัวเลือก '-L' บอกให้ ssh ส่งต่อพอร์ต พอร์ตแรกอาจเป็นพอร์ตใดก็ได้ที่สูงกว่า 1024 ที่ไม่ได้ใช้งานบนเครื่อง Linux Mint 'localhost:5902' ระบุว่าการรับส่งข้อมูลควรส่งต่อไปยังพอร์ต localhost ระยะไกล 5902 ในกรณีนี้คือพอร์ต XenServer VNC ของ TecmintVM แข็งแกร่ง>.

'root@' คือข้อมูลรับรองการเข้าสู่ระบบ SSH ไปยังโฮสต์ XenServer ในที่สุด '-N' บอกให้ SSH เพียงเปิดการเชื่อมต่อการส่งต่อพอร์ต การใช้คำสั่ง 'lsof' สามารถดูช่องสัญญาณในเอาต์พุตได้


sudo lsof -i | grep 5902

ที่นี่อุโมงค์ได้รับการตั้งค่าและรับฟังการเชื่อมต่อ ตอนนี้ได้เวลาเปิดการเชื่อมต่อ VNC กับแขกบน XenServer ยูทิลิตี้ที่ติดตั้งคือ 'xvncviewer' และการเชื่อมต่อ ssh เพื่อส่งต่อการรับส่งข้อมูลไปยัง XenServer กำลังฟังบน 'localhost:5902' เพื่อให้สามารถสร้างคำสั่งที่เหมาะสมได้


xvncviewer localhost:5902

เอาล่ะ! มีเซสชันคอนโซล TecmintVM ที่กำลังเรียกใช้ Debian Network Installer รอให้กระบวนการติดตั้งเริ่มต้นขึ้น ณ จุดนี้ การติดตั้งจะดำเนินไปเหมือนกับการติดตั้ง Debian อื่นๆ

จนถึงจุดนี้ ทุกอย่างด้วย XenServer ทำได้ผ่าน command line interface (CLI) แม้ว่าผู้ใช้ Linux จำนวนมากจะเพลิดเพลินกับ CLI แต่ก็มียูทิลิตี้ต่างๆ ที่มีอยู่เพื่อลดความซับซ้อนของกระบวนการจัดการโฮสต์และพูล XenServer บทความถัดไปในชุดนี้จะครอบคลุมถึงการติดตั้งเครื่องมือเหล่านั้นสำหรับผู้ใช้ที่ต้องการใช้ระบบกราฟิกมากกว่า CLI