Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore cloud_computing

cloud_computing

Published by Thalanglibrary, 2020-11-05 02:56:19

Description: cloud_computing

Search

Read the Text Version

หากทำงานไดถ ูกตอ งจะปรากฏผลลัพธ ดงั ภาพท่ี 5.6 แสดงวา active (running) ภาพท่ี 5.6 การตรวจสอบการทำงานของบรกิ ารไฮเปอรไวเซอร 5.3 การสรา งคอมพวิ เตอรเ สมือนดว ยบรรทัดคำสงั่ กอนการสรางคอมพิวเตอรเสมือนนั้น ผูอานควรทราบรายละเอียดของเครื่องคอมพิวเตอรท่ีผูอาน ตองการกำหนดกอน เพราะในการสรางคอมพิวเตอรเสมือนดวยบรรทัดคำสั่งนั้น ผูอานจะตองระบุขอมูลที่ จำเปน ทกุ อยา งใหค รบกอนจงึ สรา งไดด วยคำส่ังเพยี งคำสงั่ เดียว ดวยคณุ สมบตั ิ ดงั น้ี 1) ชื่อของเครื่องคอมพิวเตอรเสมือน ไมควรมีเวนวรรค เพราะจะทำใหการพิมพคำสั่งตองใส เครื่องหมายอญั ประกาศ 2) ปรมิ าณหนว ยความจำหลัก สามารถเปลยี่ นแปลงเพิ่มลดในภายหลงั ได 3) จำนวนแกนเสมือนของหนวยประมวลผลกลาง สำหรับหนวยประมวลผลที่มี Hyper Threading ของ Intel หรือ SMT ของ AMD 1 แกนทางกายภาพ จะถือวามี 2 แกนเสมือน สามารถ เปลย่ี นแปลงเพิ่มลดในภายหลังได 4) ขนาดของพน้ื ทเ่ี กบ็ ขอมลู ที่ตองการจอง ไมสามารถลดขนาดพน้ื ทีไ่ ด 5) ประเภทของระบบปฏิบัติการ โดยรายการของระบบปฏิบัติการทั้งหมดท่ีสนบั สนุน สามารถใชคำส่ัง น้เี พ่ือตรวจสอบได # osinfo-query os ในกรณีของ CentOS8 ประเภทของระบบปฏิบัตกิ ารใน KVM คือ rhel8.x โดยที่ x เปน เลขตัวลา สดุ ทโี่ ปรแกรม KVM สนบั สนนุ 81

6) ที่อยูของแฟมขอมูลอิมเมจสำหรับการติดตั้ง ในระบบปฏิบัติการลีนุกซ ตัวอักษรพิมพใหญกับ ตัวอักษรพิมพเล็กของท่ีอยูของแฟมขอมูลมีความแตกตา งกนั ในกรณีที่ตองการดาวนโหลดสามารถ ใชคำสั่ง # curl -SLo /home/CentOS8.iso <ท่ีอยขู่ องแฟ้ม> โดยท่ี <ทอ่ี ยขู องแฟม > สามารถหาไดจาก http://www.centos.org และตำแหนงที่วางแฟมขอมูลนั้น บัญชีผูใช qemu จะตองเขาถึงได โดยเมื่อเปดการทำงานของ เครื่องคอมพิวเตอรเสมือนแฟมขอมูลอิมเมจนี้จะถูกเปลี่ยนบริบทของแฟมขอมูลเปน virt_content_t 7) ประเภทเครือขาย คาเริ่มตนจะเปน virtbr0 ซึ่งโปรแกรม KVM จะทำ Network Address Translation (NAT) ใหอ ตั โนมตั ิ ตารางที่ 5.1 พารามิเตอรท ส่ี ำคญั ของคำสัง่ virt-install ชอื่ พารามเิ ตอร ความหมาย --name กำหนดชื่อเครื่องคอมพวิ เตอรเสมอื น --vcpus กำหนดจำนวนแกนเสมือนของหนวยประมวลผลกลาง --memory กำหนดจำนวนหนว ยความจำหลัก หนว ยเรม่ิ ตน เปน เมกะไบต --disk ประกอบดวย 3 องคป ระกอบยอ ย คอื path size และ format path กำหนดที่อยขู องดสิ กเ สมอื น (ไมจำเปน) size ระบขุ นาดของดิสก หนว ยเรม่ิ ตนเปน กิก๊ กะไบต (จำเปน) format ระบุรูปแบบของดิสกเสมือน สามารถเปน raw qcow2 และ vmdk คา เรม่ิ ตนเปน qcow2 ซึ่งเหมาะสมกบั KVM ท่สี ดุ --os-variant ระบปุ ระเภทของระบบปฏบิ ัติการ --network ระบชุ อ่ื เครือขา ยเสมอื น คาเริ่มตน คือ virbr0 (ไมจ ำเปน ) --location ใชในกรณที ี่ไมร ะบุพารามิเตอร graphics ใชร ะบตุ ำแหนง ของแฟม ขอมูล ISO ท่ีใชส รา งเคร่ืองคอมพวิ เตอรเสมอื น --noautoconsole ไมพ ยายามเชื่อมตอคอนโซลหลงั การสรา งเคร่ืองคอมพิวเตอรเสมือน --graphic ประกอบดวย 3 องคประกอบยอยคือ type password และ listen type กำหนดโพรโตคอลสำหรบั การเช่อื มตอ ระบเุ ปน vnc (จำเปน ) password กำหนดรหสั ผา นที่ใชเชอื่ มตอ ผานโพรโตคอล VNC (ไมจำเปน) listen กำหนดทีอ่ ยูไอพีท่ีใชร ับการเชือมตอ คา เริ่มตนคือ 127.0.0.1 (ไม จำเปน ) --autostart กำหนดใหเครื่องคอมพิวเตอรเ สมอื นไมทำงานเองหลังการสรา ง (ไมจ ำเปน ) --extra-args ระบพุ ารามเิ ตอรเพิ่มเตมิ ใหกับแกนของระบบปฏบิ ตั ิการลีนกุ ซ (ไมจ ำเปน) 82

คำสั่งท่ใี ชส รา งเคร่ืองคอมพิวเตอรเสมือน คอื virt-install ซง่ึ มพี ารามเิ ตอรท่สี ำคัญหลายพารามิเตอรดัง ตารางท่ี 5.1 ในกรณีท่ี ผูอ า นตองการสรางเคร่ืองคอมพิวเตอรเ สมอื นดว ยคุณสมบัติตอไปนี้ - ชอื่ เครือ่ ง : demo-centos - หนว ยความจำ : 1GB - จำนวนแกนของหนวยประมวลผลกลาง : 1 แกน - ขนาดของท่เี กบ็ ขอ มลู : 15GB - ระบบปฏบิ ตั ิการ : CentOS8 - ท่อี ยขู องอมิ เมจ CentOS8 คือ /home/CentOS8.iso - ประเภทเครอื ขาย: virbr0 เม่ือไดขอมลู ครบ คำสง่ั virt-install จะมีรูปแบบคำสงั่ แบบหลายรปู แบบ รูปแบบท่ี 1 เปนการสรางเครื่องคอมพิวเตอรเสมือนและแนบแฟมขอมูลอิมเมจสำหรับติดต้ัง ระบบปฏบิ ตั ิการเขาไปครัง้ แรกท่บี ูตเครอื่ ง โดยสามารถเขา ไปติดต้งั ผานทางกราฟกโดยใชโ พรโตคอล VNC # virt-install --name demo-centos --memory 1024 \\ --vcpus 1 --disk size=15 --network bridge=virbr0 \\ --graphic vnc,listen=0.0.0.0 \\ --noautoconsole --os-variant rhel8.1 \\ --cdrom /home/CentOS8.iso ขอสังเกต หนาพารามิเตอรทั้งหมดจะเปนเครื่องหมายขีดคั่นกลางจำนวน 2 ขีด และพารามิเตอร disk size (มีเวนวรรคระหวางคำ) เปนเครอ่ื งหมายเทากบั = สวนพารามเิ ตอรอ่ืนที่ไมมเี วนวรรค คา ของพารามิเตอร ใหเวน วรรค ในกรณีที่ตองการตั้งคารหัสผานของการเขาถึงผานโพรโตคอล VNC (Richardson et al. 1998) เพื่อ กำหนดสิทธใ์ิ ชเ ฉพาะคนทมี่ ีรหัสเทานัน้ สามารถแกไขพารามเิ ตอรของคำสัง่ สรางเครอ่ื งคอมพิวเตอรเสมือนจาก # virt-install … --graphic vnc,listen=0.0.0.0 ... หากตอ งการตั้งคา รหสั ผา นเปน secret ใหเปลี่ยนเปน # virt-install … --graphic vnc,password=secret,listen=0.0.0.0 ... เมื่อพิมพคำส่ังจะปรากฎผลลัพธดังภาพที่ 5.7 และเมื่อสรางเครือ่ งคอมพิวเตอรเสมอื นเสรจ็ อิมเมจของ เครอ่ื งคอมพิวเตอรเสมอื นจะถูกเกบ็ ไวที่ /var/lib/libvirt/images 83

ภาพที่ 5.7 หนา จอแสดงผลลัพธการสรา งเครอ่ื งคอมพวิ เตอรเสมอื น รูปแบบท่ี 2 เปนการสรางเครื่องคอมพิวเตอรเสมือนและแนบแฟมขอมูลอิมเมจสำหรับการติดต้ัง ระบบปฏิบัติการแบบโหมดตัวอักษร วิธีการนี้จะทำใหสามารถเขาถึงจอภาพของเครื่องคอมพิวเตอรเสมือนได โดยท่ีไมต องใชโพรโตคอล VNC # virt-install --name demo-centos \\ --memory 1024 --vcpus 1 \\ --disk size=15 --network bridge=virbr0 \\ --os-variant rhel8.1 --location /home/CentOS8.iso \\ --graphics none --extra-args='console=ttyS0' สำหรบั รปู แบบท่ี 2 เมอื่ พิมพคำสั่งเสร็จ หลงั จากทีข่ ึน้ ขอความเต็มจอเลื่อนไปสักพัก จะปรากฏหนาตาง โปรแกรม Anaconda ทช่ี วยติดตั้ง CentOS 8 ดงั ภาพท่ี 5.8 ภาพท่ี 5.8 หนา จอแสดงผลลพั ธก ารติดตั้ง CentOS หลังสรางเคร่ืองคอมพิวเตอรเ สมอื น 5.4 การสัง่ การคอมพิวเตอรเ สมอื นดว ยบรรทดั คำสั่ง การเปดการทำงานของคอมพิวเตอรเสมือนสามารถใชคำสั่ง virsh start เชน หากตองการเปดการ ทำงานเคร่ืองคอมพิวเตอรเสมือนเคร่ืองตามตัวอยาง สามารถใชคำสัง่ # virsh start demo-centos 84

การปดการทำงานของคอมพิวเตอรเสมือนสามารถใชคำสั่ง virsh shutdown เชน หากตองการปด เครื่องคอมพวิ เตอรเสมือนเครือ่ งตามตวั อยาง สามารถใชค ำสงั่ # virsh shutdown demo-centos หากตอ งการบงั คบั ปดทันทเี ครื่องคอมพิวเตอรเ สมือนเครื่องตามตัวอยาง สามารถใชคำสงั่ # virsh destroy demo-centos การลบเครือ่ งคอมพวิ เตอรเสมอื นออกจากรายการ สามารถใชคำสงั่ # virsh undefine demo-centos แตการลบดวยคำสั่งดังกลาว จะลบเฉพาะการตั้งคาเครื่องคอมพิวเตอรเสมือน แตไมไดลบขอมูลใน ฮารดดิสกของเครอ่ื งคอมพิวเตอรเ สมือน ที่ในกรณที ่ีตองการลบขอมูลทุกอยางออกหมด สามารถใชค ำสัง่ # virsh undefine demo-centos --remove-all-storage 5.5 การเช่ือมตอ คอมพิวเตอรเ สมอื นดวยบรรทัดคำส่ัง ในกรณีที่สรางเครื่องคอมพิวเตอรเสมือนรูปแบบท่ี 1 การเขาใชงานหนาจอคอมพิวเตอรของเครื่อง คอมพิวเตอรเสมือนนั้นสามารถทำไดผานโพรโตคอล VNC ซึ่งเปนโพรโตคอลเปด ผูอานสามารถดาวนโหลด โปรแกรม VNC Viewer ไดจ าก https://www.realvnc.com (RealVNC Limited 2020) หลักการเขาถึงหนาจอผานของโพรโตคอล VNC คือ โพรโตคอล VNC จะเริ่มตนพอรตท่ี 5900 หากใน ขั้นตอนการสรา งเครื่องคอมพิวเตอรเสมือนดวย virt-install ไมไดระบุพอรตไป โปรแกรม KVM จะเริ่มตน จอง พอรต 5900 สำหรับเครือ่ งแรก พอรต 5901 สำหรับเครื่องท่สี อง ไปเรื่อย ๆ ดังนน้ั ผูอานสามารถตรวจสอบได วา เคร่อื งคอมพวิ เตอรเสมอื นท่ีกำลงั ใชงานอยูจองพอรตอะไรไว ดว ยคำสั่ง # virsh dumpxml demo-centos | grep vnc ภาพที่ 5.9 ผลลัพธของคำส่ังตรวจสอบพอรต โพรโตคอล VNC จากภาพที่ 5.9 แสดงวา VNC ทำงานที่พอรต 5900 ผูอานสามารถใช VNC Viewer เชื่อมตอที่อยูไอพี ของบริดจในหัวขอกอนหนาตามตัวอยางคือพอรต 5900 โดยใชขอมูลดังกลาวเชื่อมตอจอภาพในโปรแกรม VNC Viewer ดังภาพท่ี 5.10 ทอ่ี ยไู อพีของเครือ่ งแมขายเปน 192.168.227.128 85

ภาพที่ 5.10 หนาจอหลกั โปรแกรม VNC Viewer ในกรณีที่เขาใชงาน VNC ครั้งแรก โปรแกรม VNC Viewer จะแจงเตือนวาโพรโตคอล VNC ไมได เขารหัสดังภาพที่ 5.11 ซ่งึ โพรโตคอลจะไมมีการเขา รหัส แตใ นสภาพการใชงานจรงิ การเชอื่ มตอ VNC จะตอง เชอ่ื มตอ ผานการเชือ่ มตอ ทเี่ ขา รหัสซ่งึ จะอธบิ ายในหัวขอถัดไป ภาพท่ี 5.11 หนาตา งคำเตือนวา การเชือ่ มตอไมไ ดเ ขารหัส ในกรณีที่สรางเครื่องคอมพิวเตอรเสมือนรูปแบบที่ 2 โปรแกรม virt-install จะชวยใหสามารถเขาถึง หนาจอเครื่องคอมพิวเตอรเสมือนได แมวาจะไมมีเครือขายเชื่อมตออยู หรือเครื่องคอมพิวเตอรเสมือนปดการ เช่ือมตอโพรโตคอล SSH โดยสามารถสามารถทำงานผานโปรแกรม virsh โดยมโี ครงสรา งคำส่ัง เปน 2 สอง คือ ระบุตัวดำเนินการ <operation> คือ console และชื่อของเครื่องคอมพิวเตอรเสมือน <vm_name> ดังน้ัน หากตองการเขาถึงหนาจอเครือ่ งคอมพวิ เตอรเ สมือนทส่ี รางขึน้ ตามตวั อยา งรูปแบบที่ 2 สามารถใชค ำส่งั 86

# virsh console demo-centos หากเครื่องคอมพิวเตอรเสมือนถูกสรางถึงในรูปแบบที่ 1 จะไมสามารถเขาถึงผานคำสั่งนี้ไดโดยเริ่มตน เพราะโปรแกรม virt-install จะสรา งการเชือ่ มตอ ผานกราฟก ซึ่งวิธกี ารเช่ือมตอผานกราฟก สามารถศึกษาไดใน หัวขอบทเรียนถัดไป แตเมื่อติดตั้งระบบปฏิบัติการเสร็จเรียบรอย ผูอานสามารถเปดการเชื่อมตอผานคำส่ัง virsh console ในระบบปฏิบตั ิการลนี ุกซท ัว่ ไปรวมทงั้ CentOS 8 ไดด ว ยวธิ กี ารตอ ไปน้ี 1) เปดแฟมขอมลู ของโปรแกรม Grub ซึ่งเปนตวั โหลดบตู ของระบบปฏบิ ตั กิ ารลนี ุกซ # vi /etc/default/grub 2) จากนั้นคนหาบรรทัดที่มีคำสั่ง GRUB_CMDLINE_LINUX จากนั้น เวนวรรคเพิ่มพารามิเตอร console=ttyS0 ตอทา ย และบันทกึ แฟมขอ มลู จากน้ันพมิ พค ำส่ังอัพเดทแกนของลนี ุกซ # grub2-editenv – unset kernelopts # grub2-mkconfig -o /etc/grub2.cfg 3) จากนั้นใหรีบูตเครื่องคอมพิวเตอรเสมือน หลังจากรีบูตเสร็จก็จะสามารถเขาถึงผานทาง virsh console ได เฉพาะในระบบปฏิบัติการ CentOS 8 หรือใหมกวา ผูอานสามารถเชื่อมตอหนาจอผานคำสั่ง virsh console ไดอ ีก 2 วธิ ี นอกจากวิธที ไี่ ดกลา วไปแลว คอื วิธแี รก ผอู านสามารถใชเครื่องมือชื่อ grubby ที่ชวยตั้ง คาการบูตแกนของลีนุกซ เนื่องจากผูพัฒนาซอฟตแวรไดปรับเปลี่ยนการใหโหลดรายการแกนของลีนุกซเมื่อ เริม่ ตนบูตเคร่อื ง โดยสามารถเพิ่มพารามเิ ตอร console=ttyS0 ใหกับแกนของลีนกุ ซ ไดด วยคำสงั่ ตอ ไปน้ี # grubby --args=\"console=ttyS0\" --update-kernel DEFAULT หลังจากน้นั ผูอ านสามารถตรวจสอบพารามิเตอรท เ่ี พิม่ เตมิ ใหกับแกนของลนี ุกซ ไดด วยคำสัง่ ตอ ไปนี้ # grubby --info DEFAULT วิธีทส่ี อง ผอู านสามารถเปด บรกิ ารการเชื่อมตอ พอรต อนุกรมผานบริการ serial-getty โดยระบหุ มายเลข หนาจอเปน ttyS0 ซ่งึ หมายถึงหนา จอแรก ไดด วยคำสั่งตอไปน้ี # systemctl enable [email protected] # systemctl start [email protected] 5.6 การตั้งคา การเชือ่ มตอทม่ี นั่ คงปลอดภยั ของโพรโตคอล VNC การเชื่อมตอผานโพรโตคอล VNC โดยทั่วไปมีปญหาความมั่นคงปลอดภัยหลักอยู 2 ประการ คือ ประการแรก การกำหนดการเชื่อมตอผานโพรโตคอล VNC ไมไดบังคับการปอนรหัสผาน และไมไดรหัสผานไว เปนคาเริ่มตน แมวาในหัวขอกอนหนา ผูอานสามารถระบุพารามิเตอรที่กำหนดรหัสผานของการเขาถึงผาน 87

โพรโตคอล VNC ของเครอื่ งคอมพิวเตอรเสมือนไดกต็ าม แตผ อู า นยงั คงตองเปด ไฟรวอลลอนญุ าติการเขาถึงทำ ใหเกดิ ปญหาการโจมตีจากแครกเกอรไ ดง าย เนือ่ งการปญหา 2 ประการ ดงั น้ี ประการท่ีหนึ่ง คอื การเปด ไฟรว อลลการเขา ถงึ ระยะไกลผา นโพรโตคอล VNC ทำใหแครกเกอรสามารถ ใชเครื่องมือเดารหสั ผา นไดไปเร่ือย ๆ จนกวาจะพบรหัสผาน หากเพิ่มความมั่นคงปลอดภัยโดยการระบุทีอ่ ยูไ อ พีของผูใชงานเครื่องคอมพิวเตอรเสมือนนั้น อาจเกิดความไมสะดวกในการใชงานและอาจถูกโจมตีจากการ ปลอมทอ่ี ยูไ อพีก็ได ประการที่สอง คือ เน่ืองจากโพรโตคอล VNC เปนโพรโตคอลเกา ดงั นน้ั การเชอื่ มตอจะไมมีการเขารหัส แมว า ผูอา นจะสามารถตั้งคาใหออกใบรับรอง X.509 เพือ่ เขา รหสั การเชอื่ มตอ การใบรบั รองดังกลาว หากไมได ซอื้ ใบรบั รองจากผูออกใบรับรองอิเล็กทรอนิกส (Certificate Authority) ซ่งึ มีคาใชจ า ยรายป การเช่ือมตอผาน โปรแกรม VNC Viewer จะยังคงปรากฏหนาตางเตือนเรื่องความปลอดภัยอยูดี จากประสบการณของผูเขียน เพื่อแกไขปญหาทั้งสองประการในสภาพการใชงานจริง ผูเขียนใชการ เชื่อมตอผานโพรโตคอล SSH ที่ไดมีการเขารหัสไดอยางดีอยูแลว เปนชองทางในการซอนการเชื่อมตอไปยัง โพรโตคอล VNC โดยที่ผูอานไมจำเปน ตอ งเปด พอรตในไฟรว อลลเ พ่มิ ขนั้ ตอนวิธีการต้งั คา มีดงั ตอไปนี้ 1) ตั้งคาในเครื่องคอมพิวเตอรเสมือน สามารถเชื่อมตอโพรโตคอล VNC ผานภายในเครื่องเทาน้ัน ในกรณีที่ตองการตั้งคาตอนสรางเครื่องคอมพิวเตอรเสมือน สามารถระบุ listen=127.0.0.1 ใน พารามิเตอร graphic หรือไมระบุ listen อยางใดอยางหนึ่ง ในกรณีที่ตองการแกไขเครื่อง คอมพิวเตอรทสี่ รา งไวอ ยูกอ นแลว สามารถใชค ำส่ังแกไขเครอ่ื งคอมพวิ เตอรเ สมอื น ดังน้ี # virsh edit demo-centos จากนัน้ คนหาแท็ก <graphic> และเปลี่ยนแอตทรบิ วิ ต listen เปน 127.0.0.1 2) สรางกลุมบญั ชีผูใชท่ีจำกดั การเขา ใช เชน กลมุ ทใี่ ชง านเฉพาะ VNC # groupadd vnconly 3) สรางบัญชีผูใชตามตองการโดยใหอยูในกลุมบัญชีผูใชที่สรางไวกอนหนา และกำหนดรหัสผานให บญั ชีผใู ชทส่ี รางขน้ึ เชน # useradd -g vnconly customer1 # passwd customer1 4) โดยทั่วไปบัญชีผูใชที่สรางขึ้น เมื่อล็อกอินผานโพรโตคอล SSH จะสามารถเขาถึงเชลล และเขาถึง ขอมูลตาง ๆ บนเครื่องแมขายได ผูอานสามารถจำกัดการเขาถึงได โดยแกไขแฟม sshd_config ดังนี้ # vi /etc/ssh/sshd_config จากนั้น เพิ่มสว นทกี่ ำหนดสิทธ์ิของกลมุ ผใู ช vnconly เขาไปทส่ี วนทายของแฟมขอ มลู ดงั นี้ 88

Match Group vnconly X11Forwarding no AllowTcpForwarding yes ForceCommand /bin/false โดยบรรทัดที่หนึ่งหมายความวา กำหนดสิทธิ์บังคับใชทุกบัญชีที่อยูในกลุม vnconly บรรทัดที่สอง คอื ไมอนุญาตใหส งตอแอปพลิเคชันในโหมดกราฟก จากเคร่ืองแมขายไปแสดงผลท่ีเคร่ืองท่ีเชื่อมตอ บรรทดั ทส่ี าม คอื อนญุ าตใหส งตอขอมูลจากพอรตในเครื่องแมขายได บรรทดั สดุ ทาย คือ บังคับให ผูใชคนนี้ไมสามารถเขาถึงเชลลเพื่อพิมพคำสั่งในเครื่องแมขายได เมื่อตั้งคาเสร็จใหรีสตารทบริการ sshd เพอื่ โหลดการตั้งคา ใหม # systemctl restart sshd ในกรณีที่ตองการระบุกำหนดเง่ือนไขใหรัดกุมมากขึ้น ผูอานสามารถกำหนดพอรตของการเชื่อมตอ ผา นโพรโตคอลของเครือ่ งคอมพิวเตอรเสมือนใหเ ปน พอรต คงท่ี โดยพมิ พคำสัง่ # virsh edit demo-centos จากนั้นคนหาแท็ก <graphic> และเปลี่ยนแอตทริบิวต port ของแท็ก graphic ใหเปนพอรตที่ ตองการ โดยมาตรฐานโพรโตคอล VNC ทำงานตั้งแตพอรต 5900 เปนตนไป และเมื่อระบุพอรตใด ไวแลว เครื่องคอมพิวเตอรเสมือนเครื่องอื่นจะไมสามารถใชพอรตดังกลาวในเวลาเดียวกันได เชน หากระบุเปน พอรต 5900 จะตอ งเพ่ิมเง่ือนไขในแฟมขอมูล sshd_config โดยระบเุ ปน รายบัญชีผูใช แทน ดงั นี้ Match User customer1 PermitOpen 127.0.0.1:5900 X11Forwarding no AllowTcpForwarding yes ForceCommand /bin/false โดยบรรทัดที่หนึ่งหมายความวา กำหนดสิทธิ์บังคับใชเฉพาะบัญชีผูใช customer1 บรรทัดที่สอง หมายถึงอนุญาตใหสงตอไดเฉพาะพอรต 5900 เทานั้น บรรทัดที่สามหมายถึงไมอนุญาตใหสงตอ แอปพลิเคชันในโหมดกราฟกจากเครื่องแมขายไปแสดงผลที่เครื่องที่เชื่อมตอ บรรทัดที่ส่ีหมายถึง อนุญาตใหสงตอขอมูลจากพอรตในเครื่องแมขายได บรรทัดสุดทายหมายถึงบังคับใหผูใชคนนี้ไม สามารถเขาถึงเชลลเพ่ือพิมพค ำสง่ั ในเครื่องแมขายได 89

ในกรณีที่ตองการเปดพอรตมากกวา 1 พอรต เชน พอรต 5900 และพอรต 5902 สามารถกำหนด พอรต ในตัวเลือก PermitOpen ตอทา ยในบรรทดั เดียวกนั ไดด งั น้ี PermitOpen 127.0.0.1:5900 127.0.0.1:5902 5) ทางฝงของวินโดวสที่เชื่อมตอสามารถใชโปรแกรม Putty เพื่อเชื่อมตอพอรตในเครื่องวินโดวสให เปน พอรตเดยี วกนั กบั เครอ่ื งแมขาย การเช่ือมตอนี้ขอมลู จะว่ิงผานโพรโตคอล SSH พอรต 22 ดังน้ัน เครื่องแมขายไมจำเปนตองเปดพอรตจำนวนมากตามจำนวนเครื่องคอมพิวเตอรเสมือนที่ใหบริการ โดยใหตั้งคาที่เมนู Connection > SSH > Tunnels จากนั้นเพิ่มการเชื่อมตอพอรตระหวางเครื่อง ฝงวินโดวสและเครื่องแมขายพอรต 5900 โดยที่พอรตที่กำหนดฝงเครื่องวินโดวสนั้น จะตองเปน พอรตที่ไมไดกำลังใชงานอยูโดยแอปพลิเคชันใด ๆ และพอรตจากทั้งสองฝงไมจำเปนตองเปนเลข เดียวกัน ยกตัวอยางเชน หากผูอานตองการเชื่อมตอพอรต 5901 ที่ฝงวินโดวสไปยังพอรต 5900 ที่ เครื่องแมขาย ใหกำหนด Source port เปน 5901 และ Destination เปน 127.0.0.1:5900 จากนนั้ กดปุม Add จะไดผ ลลพั ธดงั ภาพที่ 5.12 ภาพท่ี 5.12 หนา ตางตง้ั คาการเชอื่ มตอพอรต ระหวางเคร่ืองฝงวนิ โดวสและเครือ่ งแมขาย เนื่องจากการตั้งคาฝงเครื่องแมขายไดบังคับใหบัญชีผูใช customer1 สามารถสงตอพอรตได อยา งเดียวไมส ามารถเขาถึงเชลลได สำหรับโปรแกรม Putty จะตอ งต้ังคาเพม่ิ เติม เพอ่ื ไมส่ังใหเรียก คำส่ังเชลลที่ลีนุกซ โดยคลิกที่เมนู SSH และเลือก Don’t start a shell or command at all ดัง ภาพที่ 5.13 หากลืมเลือกขอนี้ เมื่อเชื่อมตอไปยังเครื่องแมขายและล็อกอินสำเร็จโปรแกรม Putty จะปด ตวั อตั โนมตั ิ 90

ภาพท่ี 5.13 หนาตางการต้ังคาไมเ รียกคำสงั่ เชลลทลี่ ีนกุ ซ เมื่อไดตั้งคาเพิ่มเติมสำหรับการสงตอพอรต และเชื่อมตอการเครื่องแมขายสำเร็จ หนาตาง โปรแกรม Putty จะไมมีตัวอักษรใด ๆ แสดง และจะยังทำงานคางอยู หากปดหนาตางไปการ เช่ือมตอ จะถกู ปดทนั ที 6) ผูอานสามารถเปดโปรแกรม VNC Viewer และระบุการเชื่อมตอไปยังพอรตที่ระบุไวใน Source port ของโปรแกรม Putty เชน localhost:5901 หรือ 127.0.0.1:5901 โปรแกรม Putty จะทำ การสงตอขอมูลไปยังเครื่องแมขายพอรต 5900 ดงั ภาพที่ 5.14 ภาพที่ 5.14 หนาตางโปรแกรม VNC Viewer 91

บทสรปุ คุณสมบัติของเครื่องคอมพิวเตอรเสมือนใน Hyper-V และ VMWare Workstation Player ขั้นต่ำ สำหรับติดตั้งโปรแกรม KVM คือ 1) ระบบปฏิบัติการลีนุกซ 2) ขนาดของดิสกขั้นต่ำ 60GB 3) หนวยความจำ หลักอยา งนอ ย 2GB และ 4) หนวยประมวลผลกลางทส่ี นบั สนนุ สว นขยาย Intel VT-x หรอื SVM เนือ่ งจากการทำเสมือนซอนของหนวยประมวลผลกลาง AMD ยังเปนรนุ ทดสอบสำหรับวงใน ผูอานอาจ ประสบปญ หาการสรางเครื่องคอมพวิ เตอรเสมือนไมได ซง่ึ สามารถแกไขเบอื้ งตน ดว ยคำสงั่ # echo \"options kvm ignore_msrs=1\" >> /etc/modprobe.d/kvm.conf # echo \"options kvm report_ignored_msrs=0\" >> /etc/modprobe.d/kvm.conf การสรางเครือ่ งคอมพิวเตอรเสมือน ประกอบดวยพารามิเตอรทจี่ ำเปนหลายตวั ผอู า นควรระบคุ ุณสมบัติ ของเครอ่ื งคอมพิวเตอรเสมือนผานพารามิเตอรของคำส่ัง virt-install ใหครบถว น มิเชนนั้น ผอู านจะสามารถใช คำสั่ง virsh edit เขา ไปแกไขคุณสมบัตใิ นรปู แบบ XML การเช่อื มตอ ผานคำส่ัง virsh console ผอู า นสามารถตัง้ คา ในแกนของลนี กุ ซ แตหากใชร ะบบปฏิบัติการ CentOS 8 หรือใหมกวา ผูอานสามารถเลือกใชเครื่องมือ grubby หรือเปดการทำงานของบริการ serial- getty@ttyS0 อยางใดอยางหนงึ่ การเชื่อมตอผานโพรโตคอล VNC โดยตรงมักไมปลอดภัยเนื่องจากเปนการเชื่อมตอที่ไมไดเขารหัส แม ผูอานสามารถกำหนดรหัสผานการเขาถึงเครื่องคอมพิวเตอรเสมือนผานโพรโตคอล VNC ไดก็ตาม เพื่อใหการ เชื่อมตอเขารหัส หนึ่งในวิธีการที่เปนที่นิยมคือการเชื่อมตอโดยผานอุโมงคของโพรโตคอล SSH เพื่อเชื่อมตอ พอรต ในเครอื่ งวนิ โดวสใหเ ปนพอรต เดียวกันกบั เครอ่ื งแมขา ย 92

สรุปคำสง่ั ทีน่ า สนใจ คำสง่ั หรือช่ือคำส่ังที่เกี่ยวขอ ง เนื้อหา # cat /proc/cpuinfo | egrep \"vmx|svm\" # lscpu | grep Virtualization คำสง่ั ตรวจสอบกอนวาหนว ยประมวลผลกลาง สนบั สนุนชดุ คำสงั่ พเิ ศษหรอื ไมด ัวยคำสั่ง virt โมดลู ท่ีตองติดต้งั virt-install และ virt-viewer แพค็ เกจที่ตองติดตั้ง # virt-host-validate คำสงั่ ตรวจสอบความพรอมของเคร่ือง # lsmod | grep kvm ชอื่ บรกิ ารของโปรแกรม KVM libvirtd แสดงรายช่อื ระบบปฏบิ ตั ิการท่ี KVM สนบั สนนุ osinfo-query os คำส่ังสรา งเคร่ืองคอมพวิ เตอรเสมอื นเริ่มตน ดว ย # virt-install --name demo-centos กราฟก --memory 1024 --vcpus 1 --disk size=15 คำสง่ั สรางเครื่องคอมพวิ เตอรเสมือนเร่ิมตน ดวย --network bridge=virbr0 โหมดขอ ความ --graphic vnc,listen=0.0.0.0 --noautoconsole เปด การทำงานคอมพวิ เตอรเ สมือน --os-variant rhel8.1 \\ เชอ่ื มตอคอมพวิ เตอรเ สมือน --cdrom /home/CentOS8.iso เขา ถงึ หนา จอเคร่ืองคอมพิวเตอรเ สมอื น # virt-install --name demo-centos เปดการเชอ่ื มตอ ผา นคำสง่ั virsh console --memory 1024 --vcpus 1 --disk size=15 --network bridge=virbr0 --graphics none --extra-args='console=ttyS0' --os-variant rhel8.1 --location /home/CentOS8.iso # virsh start demo-centos # virsh dumpxml demo-centos | grep vnc จากนั้นเชอื่ มตอผา น VNC Viewer โดยใชที่อยูไอพี ของเคร่ืองแมขายและพอรตท่ีปรากฎในผลลพั ธข อง คำส่ัง # virsh console demo-centos ในกรณที ีเ่ ปน ลีนุกซท ่ัวไป # vi /etc/default/grub เพมิ่ พารามิเตอร console=ttyS0 ตอทายคำสั่ง GRUB_CMDLINE_LINUX # grub2-editenv – unset kernelopts # grub2-mkconfig -o /etc/grub2.cfg 93

เนือ้ หา คำส่งั หรอื ชื่อคำสงั่ ท่ีเกี่ยวขอ ง หรอื ปดเครื่องคอมพวิ เตอรเ สมือน ในกรณีทเ่ี ปน CentOS 8 หรือใหมกวา บังคบั ปด ทันทเี คร่ืองคอมพิวเตอรเ สมอื น # grubby --args=\"console=ttyS0\" --update- ลบเครื่องคอมพวิ เตอรเ สมือนออกจากรายการ kernel DEFAULT ลบเครื่องคอมพวิ เตอรเ สมือนออกจากรายการ และ หรอื ขอมลู บนดสิ กทุกอยา ง # systemctl enable [email protected] สรางกลมุ ผูใชส ำหรับการทำเขาถึงผาน VNC เทานัน้ # systemctl start [email protected] และสรางบัญชีผใู ชท อี่ ยูในกลุมน้ี จากนน้ั กำหนด # virsh shutdown demo-centos รหัสผานสำหรบั การล็อกอนิ # virsh destroy demo-centos การตงั้ คา SSH Server เพ่ือรองรับกลมุ ผูใชที่เขา ถงึ # virsh undefine demo-centos ผา น VNC เทา น้นั # virsh undefine demo-centos --remove-all- การตง้ั คา SSH Server เพื่อรองรับเฉพาะผูใชแ ละ storage บางพอรตของ VNC เทานน้ั # groupadd vnconly การตั้งคา Putty เพือ่ เชอื่ มตอโพรโตคอล VNC # useradd -g vnconly customer1 การตั้งคา VNC Viewer เพอื่ เช่อื มตอผา น Putty # passwd customer1 # vi /etc/ssh/sshd_config Match Group vnconly X11Forwarding no AllowTcpForwarding yes ForceCommand /bin/false Match User customer1 PermitOpen 127.0.0.1:5900 X11Forwarding no AllowTcpForwarding yes ForceCommand /bin/false Connection > SSH > เลือก Don’t start a shell or command at all Connection > SSH > Tunnels เลือก Source Port เปน 5900 Destination 127.0.0.1:5900 เช่อื มตอ ไปยัง localhost หรือ 127.0.0.1 และพอรต ทีร่ ะบุไวใ น Source port 94

แบบฝกหดั บทท่ี 5 1. บอกเงื่อนไขทจ่ี ำเปน ในการติดต้งั โปรแกรม KVM 2. บอกช่ือโมดลู และแพ็คเกจที่จำเปน สำหรับตดิ ตั้งโปรแกรม KVM 3. บอกวธิ กี ารตรวจสอบวา การติดตงั้ แพ็คเกจโปรแกรม KVM ครบสมบรู ณ 4. บอกวิธีการตรวจสอบวาแกนของลีนุกซเปน ไฮเปอรไวเซอรหรือไม 5. บอกช่อื บริการที่ใชป ฏสิ มั พนั ธก ับโปรแกรม KVM ในแกนของระบบปฏบิ ัตกิ าร 95

6. บอกพารามิเตอรและความหมายของพารามเิ ตอรทีใ่ ชส รา งเครื่องคอมพวิ เตอรเ สมอื นดวยคำสง่ั virt- install มาอยางนอ ย 5 พารามเิ ตอร 7. หากตองการใหส ามารถเขาถึงเครื่องคอมพวิ เตอรเ สมอื นผานโพรโตคอล VNC และมีรหัสผา นเปน 1234 จะตองกำหนดพารามเิ ตอรของคำสงั่ virt-install อยา งไร 8. หากตอ งการใหเ ครอื่ งคอมพวิ เตอรเสมือนสามารถเขา ถึงผา นคำส่งั virsh console จะตอ งกำหนด พารามเิ ตอรของคำส่งั virt-install อยางไร 9. หากอนญุ าตเครื่องคอมพิวเตอรเสมอื นใหเขาถงึ ผา นโพรโตคอล VNC แตต องการใหสามารถเขา ถึงผา น คำสั่ง virsh console ในภายหลังจะตอ งดำเนนิ การอยางไร 10. บอกคำส่งั ทีใ่ ชล บเครื่องคอมพิวเตอรเ สมือนพรอมแฟมขอมูลที่เกี่ยวของออกจากเครื่อง 96

การบริหารจัดการเคร่ืองคอมพิวเตอรเ สมอื นผานกราฟก และเวบ็ บทนำ ดว ยธรรมชาติของระบบปฏิบัติการลนี ุกซที่มีการทำงานดวยบรรทัดคำสั่งเปน หลักอาจทำใหผูเร่ิมตนรูสึก วาการบรกิ ารจัดการระบบเทคโนโลยเี สมือนนนั้ เปน เร่อื งที่ยาก อยา งไรกต็ าม ระบบปฏบิ ตั กิ ารลนี กุ ซมเี คร่ืองมือ ที่ชวยในการบริหารจัดการในรูปแบบที่เปนมิตรกับผูเริ่มตน แมจะไมสามารถทำงานไดทุกคำสั่งเหมือนใน บรรทัดคำสั่ง แตเครื่องมือเหลาที่เปนที่นิยมและสามารถเขาถึงเพื่อจัดการไดสะดวกคือเครื่องมือที่บริหาร จัดการผานชองทางเว็บเบราเซอร และผานโหมดกราฟก ทำใหการบริหารจัดการสามารถทำไดโดยที่ไมตอง พิมพบ รรทัดคำสัง่ 6.1 การติดตัง้ เครือ่ งมือชวยบริหารจดั การผา นเวบ็ เครื่องมือชวยบริหารจัดการผานเว็บที่มาพรอมกับระบบปฏิบัติการตระกูล CentOS คือ cockpit โดย cockpit ไมใชโปรแกรมชวยบริหารจัดการระบบเทคโนโลยีเสมือนโดยเฉพาะแตชวยบริหารจัดการการทำงาน ของเครื่องแมข า ยทง้ั หมด และมีสว นขยายเพ่ือบริหารจัดการระบบเทคโนโลยเี สมือนหรือโปรแกรม KVM ได แพ็คเกจที่จำเปนในการติดตั้งเครื่องมือบริหารจดั การผานเว็บมี 2 แพ็คเกจ คือ cockpit และ cockpit- machines สามารถตดิ ต้ังดวยคำส่งั # yum install cockpit cockpit-machines เนอื่ งจากการทำงานของ cockpit เปน บริการทที่ ำงานอยูเ บ้ืองหลังตลอดเวลา และเปน โปรแกรมเฉพาะ ของระบบปฏิบัติการจึงไมมีความจำเปนตองการเปดการใหบริการดวยตนเอง เพราะโปรแกรมจะทำงานเอง อตั โนมัติ คาเร่ิมตน การทำงานของ cockpit จะทำงานทพ่ี อรต 9090 แตถูกบลอ็ กโดยไฟรวอลล ดังนั้นจะตองเปด การเขาถงึ จากไฟรว อลล ดวยเครือ่ งมอื firewall-cmd # firewall-cmd --add-service=cockpit --permanent # firewall-cmd --reload ในกรณีที่บริการ cockpit ถูกเปดใหบริการอยูแลว เมื่อพิมพคำสั่งอนุญาตการเขาถึงโดยไฟรวอลล อาจ ปรากฎผลลพั ธด งั ภาพที่ 6.1 สามารถ ดำเนนิ การในขั้นตอนถดั ไปไดทนั ที 97

ภาพท่ี 6.1 หนา จอผลลัพธเมื่ออนุญาตไฟรว อลลใ หเ ขาถึง Cockpit เมื่อดำเนินการเสร็จสิ้น ผูอานจะสามารถเขาถึงบริการ cockpit ไดที่ https://<ที่อยูไอพี>:9090 จาก เว็บเบราเซอร แตเนื่องจากใบรับรองการเขารหัส https ของบริการ cockpit ไมไดซื้อมาจากผูออกใบรับรอง อิเล็กทรอนิกส ดังนั้น เมื่อเขาใชงานครั้งแรก ผูอานอาจพบขอผิดพลาดแจงเตือนวาเว็บไซตนี้ไมปลอดภัย ซ่ึง สามารถดำเนินการตอไดอยางไมมีปญหา การล็อกอินนั้นสามารถใชรหัสผูใชและรหัสผานของ root ในระบบ โดยที่ไมจ ำเปนตอ งสรา งบัญชีผูใชใ หม เมื่อล็อกอนิ สำเรจ็ จะปรากฎหนา จอดังภาพท่ี 6.2 ภาพท่ี 6.2 หนาจอของโปรแกรม Cockpit ใหสังเกตที่เมนูฝงซา ยมือจะมเี มนู Virtual Machines ใหผูอานบริหารจัดการเครือ่ งคอมพิวเตอรเสมอื น หากไมมีเมนูนี้แสดงวาแพ็คเกจ cockpit-machines ไมไดถูกติดตั้ง ใหกลับไปดำเนินการขั้นตอนในหัวขอ 6.1 ใหมอ กี ครัง้ แตถ ามีเมนู Virtual Machines ใหด ำเนนิ การขัน้ ตอนถดั ไป 98

6.2 การสรางคอมพวิ เตอรเสมือนผานเวบ็ เมื่อเลือกเมนู Virtual Machines จะปรากฏรายการเครื่องคอมพิวเตอรเสมือนที่สรางและสถานะการ ทำงานของเครื่องคอมพิวเตอรเสมือนที่มีอยูในปจจุบัน ผูอานสามารถสรางเครื่องคอมพิวเตอรเสมือนไดโดย คลิกปุม Create VM จะปรากฏหนาตางสรางเครื่องคอมพิวเตอรเสมือนใหมใหระบุขอมูลของเครื่อง คอมพิวเตอรเ สมอื น ดังภาพที่ 6.3 ภาพที่ 6.3 หนาตางสรา งเครอ่ื งคอมพิวเตอรเ สมือนใหม ในหนาตา งสรางเครอื่ งคอมพวิ เตอรเสมอื นใหม จะมีรายละเอยี ดของขอ มูลทีต่ องกรอกดังน้ี 1) Name เปนชื่อเรียกของเครอ่ื งคอมพิวเตอรเสมือน ไมควรมีเครอ่ื งหมายพิเศษและไมควรเวนวรรค 2) Installation Source Type เปนแหลงที่มาของระบบปฏบิ ัติการทีต่ องการติดตั้ง โดยมีเปาหมายได หลายรูปแบบ ดังน้ี - Download an OS หมายถึงใหโ ปรแกรม KVM ดาวนโหลดระบบปฏิบตั กิ ารท่ตี อ งการจาก อินเทอรเนต็ โดยอัตโนมัติ - Local Install Media หมายถงึ ตำแหนงทตี่ ้ังบนเครือ่ ง หรือสามารถเขา ถึงไดจ ากเคร่ืองเชน /home/CentOS8.iso ท่ดี าวนโ หลดจากบทท่ีผา นมา - URL หมายถึงตำแหนง ที่ตั้งบนเครอื ขาย อาจเปน http https หรอื ftp ในกรณีท่ีผอู า นไมได ดาวนโหลด iso และมีความเร็วในการเช่ือมตอเครือขา ยทเ่ี ร็วพอ ผอู านสามารถปอนท่ีอยู URL ของ CentOS 8 Mirror ทอ่ี ยูในไทยได เชน http://mirror2.totbb.net/centos/8.2.2004/isos/x86_64/os/ ซึ่งรายการของ Mirror นั้น สามารถคนหาไดจาก http://www.centos.org - Network Boot PXE หมายถึงการใชงาน thin client ทีบ่ ตู เคร่อื งโดยมรี ะบบปฏบิ ตั ิการเก็บไว ทเ่ี ครอ่ื งอืน่ 3) Installation Source เปน การระบุเปาหมายตามชนดิ ของแหลงทีม่ า 99

4) Operating System เปน ประเภทของระบบปฏิบตั ิการ การเลือกระบบปฏิบตั กิ ารจากเมนูใหตรงกับ ระบบปฏิบัติการที่จะติดตั้งจะทำใหโปรแกรม KVM สามารถสรางสภาพแวดลอมของฮารดแวรได ตรงกบั ลักษณะเฉพาะของแตละระบบปฏบิ ตั ิการ 5) Storage เลอื ก Create new volume จะสามารถระบขุ นาดเปนกิ๊กกะไบต GiB หรือเมกะไบต MiB 6) Memory เปนหนวยความจำหลักที่ตองการจองใหเครื่องคอมพิวเตอรเสมือน ควรเหลือปริมาณ หนวยความจำหลักไวใหกับเครื่องโฮสตดวย ในกรณีที่เลือกดวยหนวย GiB ไมไดแสดงวามี หนวยความจำทสี่ ามารถจองไดไ มถ งึ 1 ก๊ิกกะไบต ใหเปลี่ยนหนวยเปน MiB หนาจอจะแสดงปริมาณ หนว ยความจำหลักสงู สุดทีส่ ามารถเลอื กได เม่อื กรอกขอมลู เคร่อื งคอมพิวเตอรเสมือนตามคณุ สมบัติแบบเดียวกบั บทเรียนกอนหนา คือ - ช่อื เครื่อง : demo-centos - หนวยความจำ : 1.5GB - ขนาดของท่ีเก็บขอ มูล : 15GB - ระบบปฏบิ ัตกิ าร : CentOS8 - ที่อยูของอิมเมจ CentOS8 คือ /home/CentOS8.iso จะไดผลลพั ธดงั ภาพที่ 6.4 ซงึ่ แสดงใหเ ห็นวา ไมม ีเมนสู ำหรับกำหนดจำนวนหนวยประมวลผลกลาง และ สามารถระบุประเภทของเครือขาย โดยเครื่องมือจะเลือกจำนวนหนวยประมวลผลกลางที่เหมาะสมและเลือก เครือขายเริ่มตน ใหอ ัตโนมตั ิ ภาพท่ี 6.4 หนา ตา งสรางเครื่องคอมพิวเตอรเ สมือนเม่อื กรอกขอ มูลครบ 100

6.3 การเปด การทำงานคอมพวิ เตอรเ สมอื นผานเวบ็ เมือ่ สรา งเคร่อื งคอมพิวเตอรเ สมือน เครือ่ งท่สี รางจะปรากฏในรายการเคร่อื งคอมพวิ เตอรเ สมือน ดงั ภาพ ที่ 6.5 สำหรบั การเขา ใชงานคร้ังแรก เครื่องมอื จะไมเรียกวา Start แตจ ะใชคำวา Install แทนเน่ืองจากการต้ัง คาแหลงที่มาของระบบปฏิบัติการนนั้ จะคงอยูเพียงการรบี ูตคร้ังแรกเทานนั้ หากผอู านติดตง้ั ระบบปฏิบัติการไม สำเร็จในบูตแรก เชน เลือกแฟมอิมเมจ iso ผิด เมื่อรีบูตอีกที การตั้งคาแหลงที่มาระบบปฏิบัติการจะหายไป แมโปรแกรม KVM จะมเี ครอ่ื งมือ virsh ท่สี ามารถเขาไปแกไขแหลงท่ีมาระบบปฏิบัติการไดกต็ าม แตการสราง เครอ่ื งคอมพิวเตอรเ สมือนใหมเ ปน ตวั เลอื กทีแ่ นะนำ และใชง านไดงายกวา ภาพที่ 6.5 เมนูเครื่องคอมพิวเตอรเ สมือนกอนเปด การทำงานครง้ั แรก เมื่อกด Install ในครั้งแรกไป รายการเครื่องคอมพิวเตอรเสมือนจะมีเมนูที่เปลี่ยนไปตามสถานะของ เครื่องคอมพิวเตอรเสมือน โดยปุมที่เพิ่มขึ้นมาจะมี Restart หรือ Force Restart ซึ่งจะใชรีบูตเครื่องโดยสง สัญญาณไปยังระบบปฏิบัติการใหปดและรีบูตเครื่องอีกครั้งคลายกับการพิมพ systemctl reboot กับบังคับ รีบูตเหมือนกดปุมรีเซ็ตที่หนาเครื่องคอมพิวเตอรจริง และเมื่อปดการทำงานหรือ Shut down เครื่อง คอมพวิ เตอรเ สมือนจะมเี มนทู ่ีเปลี่ยนไปตามสถานะของเคร่ืองคอมพิวเตอรเสมือนเชนกัน 6.4 การเชอ่ื มตอคอมพวิ เตอรเสมอื นผานเวบ็ การเชอ่ื มตอคอมพิวเตอรเสมือนผานเว็บน้ันเปนเรื่องที่งายมาก และไมตองการการตดิ ตัง้ ซอฟตแ วรใด ๆ เพม่ิ เตมิ เหมือนการเขาถึงผานบรรทัดคำสั่ง เพราะโปรแกรม cockpit มี VNC Viewer อยูใ นตัว ผูอานสามารถ เขาถึงหนาจอเครื่องคอมพิวเตอรเสมือน แมเครื่องนั้นจะยังไมมีการเชื่อมตอเครือขาย หรือไมไดเปดใชงาน โพรโตคอล SSH เพอ่ื เขา ถึงระยะไกลได โดยเลอื กเมนู Console จะปรากฎผลลพั ธดังภาพท่ี 6.6 และในกรณีที่ ตองการใชป ุมพเิ ศษ สามารถเลอื กไดจากปมุ Send key อกี ที แตการเขาถึงหนาจอเครื่องคอมพิวเตอรเสมือนผานเมนูที่กลาวมานั้น ผูใชจำเปนจะตองล็อกอินดวย root หรือ Super User ในระบบเทานั้น จึงจะสามารถเขาถึง Console ของโปรแกรม cockpit ได ซึ่งในแง ของความมั่นคงปลอดภัยหากมีผูใชงานหลายคน วิธีการนี้อาจไมปลอดภัยเทาที่ควร โปรแกรม cockpit จึงดึง คาของการเช่ือมตอผานทางโปรแกรม VNC Viewer ภายนอกได โดยเลือกเมนู Console Type เปน Graphic 101

Console in Desktop Viewer ซึ่งจะมีพารามิเตอรที่สำคัญสำหรับการเชื่อมตอผานทางโปรแกรม VNC Viewer ภายนอก แตค าเรม่ิ ตน ของการเขา ถงึ น้นั จะยอมรับเฉพาะทอี่ ยูไอพี 127.0.0.1 เทา นน้ั ภาพที่ 6.6 หนาจอการเช่ือมตอ เคร่ืองคอมพิวเตอรเ สมือนผานโปรแกรม Cockpit การแกไขใหยอมรับการเขาถึง VNC Viewer จากเครื่องอื่นจำเปนจะตองใชเครื่องมือบรรทัดคำสั่งอยา ง virsh โดยแกไ ขไดด ังน้ี ใชเครอ่ื งมือ virsh แกไ ขการตั้งคา ของเครอื่ งท่ีตอ งการ # virsh edit demo-centos คำสั่งจะเปดโปรแกรม vi ใหเ ขาไปแกไขการตง้ั คา ไดใ หคน หาบรรทัดทเี่ ขยี นวา <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'> <listen type='address' address='127.0.0.1'/> และแกไ ขใหเปน <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> จากนั้นบันทึกการตั้งคาและปดเปดเครื่องคอมพิวเตอรเสมือนใหมอีกครั้งจะทำใหสามารถเขาถึงไดจาก เครื่องคอมพิวเตอรภายนอกได สำหรับการตั้งคาขั้นสูงสามารถอางอิงการตั้งคาการเชื่อมตอที่มั่นคงปลอดภัย ของโพรโตคอล VNC ไดใ นบทกอ นหนา หมายเหตุ หากกำลังเชอื่ มตอ หนา จอของเครอ่ื งคอมพิวเตอรเ สมือนผานชอ งทาง VNC ของ cockpit โดย เปดผานทางเบราเซอรอยูจะไมสามารถเชื่อมตอหนาจอผานโปรแกรม VNC Viewer ได เนื่องจากสามารถ เขา ถึงจอภาพไดเ พียงทลี ะ 1 เครอ่ื งเทาน้ัน 102

6.5 การปด เครื่องคอมพิวเตอรเสมือนผา นเวบ็ การปดเครือ่ งคอมพิวเตอรเสมอื นผานเว็บสามารถทำไดโดยเลือกเครื่องคอมพิวเตอรเสมือนจากรายการ ทีต่ อ งการ หากเครอ่ื งทำงานอยู จะปรากฏปมุ ทส่ี ามารถใชปด เครือ่ งได ดังน้ี 1) ปุม Pause เปนการปดการทำงานแบบหยุดการทำงาน ณ สถานะนั้นไว การทำงานคลายกับ Hibernate ใน Microsoft Windows โปรแกรม KVM จะโหลดขอมูลจากหนวยความจำหลักมา เก็บไวในดิสก เมื่อเปดเครื่องอีกทีขอมูลหนวยความจำหลักจะถูกโหลดมาไวเหมือนเดิม ทำให แอปพลิเคชนั ทีเ่ คยเปด หรอื ทำงานไวยงั คงสามารถทำงานไดเ หมือนเดิม 2) Shutdown เปนการปดเครือ่ งแบบสั่งใหเครื่องทยอย ๆ ปดโปรแกรมและบันทึกการตัง้ คาอัตโนมัติ การทำงานคลายกับท่ีผอู า นเลือกพิมพ systemctl poweroff เพอื่ ปดเคร่อื งดวยตัวเอง 3) Force Shutdown เปนการปดเครือ่ งแบบบังคับปดทันที เหมือนกดสวิตชปดเคร่ืองคางไว 4 วินาที ทเ่ี ครือ่ งคอมพิวเตอรจริง 4) Send Non-maskable Interrupt ใชในกรณีที่เครื่องคอมพิวเตอรเสมือนคาง การสราง Interrupt จะชวยใหร ะบบปฏบิ ัติการปด โปรแกรมที่ไมต อบสนองทง้ิ และทำใหกลับมาทำงานไดต ามปกติ 6.6 การลบเครอื่ งคอมพิวเตอรเสมือนผานเว็บ การลบเครื่องคอมพิวเตอรเสมือนผานเว็บสามารถทำไดงาย ๆ โดยเลือกเครื่องคอมพิวเตอรเสมือนจาก รายการทีต่ องการ หากเคร่ืองทำงานอยูจะตองปดการทำงานของเครื่องคอมพวิ เตอรเสมือนนั้นกอน การลบโดย กดปุม Delete จะปรากฏขอความสอบถามดังภาพที่ 6.7 โดยจะมีตัวเลือกวาตองการลบขอมูลในฮารดดิสก ดวยหรือไม หากเลือกขอมูลดิสกเสมือนจะถูกลบไปดวย หากไมเลือกขอมูลดิสกเสมือนจะยังคงอยูสามารถ นำมาใชกับเคร่อื งอ่นื ได ภาพท่ี 6.7 หนา ตา งยนื ยนั การลบเครอื่ งคอมพวิ เตอรเสมือน 103

6.7 การติดต้ังโปรแกรมแสดงผลกราฟกจากระยะไกล การทำงานโหมดกราฟกของระบบปฏิบัติการลีนุกซนั้นจำเปนตองใชแพ็คเกจกลุม X Windows ซ่ึง แพ็คเกจดังกลา ว โดยท่วั ไปไมน ิยมติดตั้งมาพรอมกับระบบปฏิบัติการเครื่องแมขาย เนอื่ งจากมีขนาดใหญ และ การบริหารจัดการระบบปฏิบัติการสามารถดำเนินการไดดวยบรรทัดคำสั่ง แตในกรณีที่ผูอานยังไมมีความ ชำนาญหรือตองการความสะดวกสบายในการจัดการโปรแกรม KVM แตการติดตั้งแพ็คเกจ X Windows นั้น จะทำใหการแสดงผลกราฟก แสดงผลที่จอภาพที่เชือ่ มตอทางกายภาพกับเครื่องแมขายเทานั้น ซึ่งในสภาพการ ทำงานจริงเปนไปไดยากมากที่ผูดูแลระบบจะเขามาในหองเครื่องแมขาย เพื่อใชคียบอรด เมาส และจอภาพท่ี เชื่อมตอทางกายภาพกับเครื่องแมขาย ดังนั้น ในหัวขอน้ีจะอธบิ ายวิธีการติดต้ังและการตั้งคา X Windows ใน ฝงระบบปฏบิ ตั ิการวนิ โดวส แตเ รยี กการทำงานคำสั่งจากเคร่ืองแมขา ยแทน โดยแพ็คเกจ X Windows สำหรับ ระบบปฏิบัติการวินโดวสในปจ จุบันมีหลายแพ็คเกจ เชน Xming (Colin Harrison 2020) VcXsrv (Slashdot Media 2020) หรือ X410 (Choung Networks 2020) เปนตน แตผูเขียนแนะนำแพ็คเกจ VcXsrv เปน แพ็คเกจที่เหมาะสมที่สุด เนื่องจากฟรีไมมีคาใชจาย และแพ็คเกจยังคงมีการอัพเดทใหทันสมัยอยูในปจจุบัน ผูอานสามารถดาวนโหลดแพค็ เกจ VcXsrv ไดจากเวบ็ ไซต https://sourceforge.net/projects/vcxsrv/ เม่ือ เขา ไปท่ีเว็บไซตดังภาพท่ี 6.8 ใหคลกิ ท่ี Download เพ่อื ดาวนโ หลดตวั ตดิ ตั้ง ภาพท่ี 6.8 สวนหนง่ึ ของหนาดาวนโ หลดแพค็ เกจ VcXsrv เมื่อเปดตัวติดตั้งแพ็คเกจ VcSrv ใหผูอานเลือกการติดตั้งแบบเต็ม Full ดังภาพที่ 6.9 และคลิก Next เพือ่ ดำเนนิ การข้นั ตอนถัดไป 104

ภาพที่ 6.9 หนาตางเริม่ ตนตดิ ตั้งแพค็ เกจ VcXsrv จากนั้นตัวติดตั้งจะใหเลือกที่อยูสำหรับติดตั้งแพ็คเกจซึ่งผูอานสามารถเลือกที่อยูเริ่มตนโดยไม เปลี่ยนแปลง และคลิก Install เพื่อดำเนินการติดตั้ง เมื่อติดตั้งเสร็จแลวคลิกปุม Close เพื่อปดตัวติดตั้ง ดัง ภาพท่ี 6.10 ภาพท่ี 6.10 หนาตางเลอื กที่อยตู ิดตง้ั แพค็ เกจ VcXsrc 6.8 การตั้งคาการเขาถงึ ระยะไกลเพือ่ ใชง านเคร่อื งมอื โหมดกราฟก โดยปกติแพ็คเกจ X Windows นั้นจะไมทำงานตลอดเวลา ดังนั้นเมื่อตองการใชโหมดกราฟกของ ระบบปฏิบัติการลีนุกซ ผูอานสามารถเรียกการทำงานไดโดยคลิกปุม Start > VcXsrv และเลิอก XLaunch จากนั้นจะปรากฏหนาตาง Display Settings ดังภาพที่ 6.11 ใหเลือก Multiple Windows เพราะจะแสดง ผลลัพธหนาจอที่ไมเกะกะกับสวนของ Desktop ของระบบปฏิบัติการวินโดวส สวน Display number สามารถเลือกเปน -1 เพื่อใหโปรแกรม VcXsrv เลือกลำดับหนาจอโดยอัตโนมัติ ซึ่งจะสอดคลองกับการตั้งคา ของ Putty ในภายหลงั 105

ภาพที่ 6.11 หนาตา งตง้ั คาหนา จอ ถัดไปหนาตาง Client startup ดังภาพที่ 6.12 ใหเลือก Start no client เนื่องจากโปรแกรมหรือคำสั่ง ที่ตองการสั่งใหทำงานนั้นจำเปนตองเปด Putty กอน ในกรณีที่ผูอานเลือก Start a program จะปรากฎ หนาตางใหกรอกขอมูลสำหรับการเชื่อมตอไปยังเครื่องแมขาย แตเพื่อความสะดวกในกรณีที่ตองการเปดการ เช่อื มตอ ในภายหลังจงึ ควรเลอื กเปน Start no client ภาพที่ 6.12 หนาตางตง้ั คาการเรม่ิ ตน ของโปรแกรมไคลเอนต 106

ถัดไปเปนหนา ตา ง Extra settings เปนการตงั้ คา เพม่ิ เตมิ ดังภาพที่ 6.13 ประกอบดว ยตัวเลือกตอไปน้ี ตัวเลือก Clipboard จะสามารถใชคัดลอกและวางขอความจากหนาตางของโปรแกรม X Windows และแอปพลิเคชันท่ที ำงานในระบบปฏบิ ัติการวนิ โดวสได โดยเร่ิมตนใหคลกิ เลอื กไว ตัวเลือก Primary Selection หากเลือกไวหมายถึงเวลาคัดลอกขอความจากหนาตางของโปรแกรม X Windows ขอความดังกลาวจะทับขอความในคลิปบอรดเดิมของระบบปฏิบัติการวินโดวส แตหากไมเลือกไว ขอความจะไมทบั ของเดมิ แตจ ะสามารถคลกิ ทีป่ มุ กลางเพื่อวางขอความได โดยเร่ิมตน ใหคลิกเลือกไว ตัวเลือก Native opengl หมายความวาการแสดงผลของหนาตางของโปรแกรม X Windows จะถูก ประมวลผลทฝ่ี ง เครื่องแมขายและนำผลลัพธม าแสดงทีเ่ ครอ่ื งฝง วนิ โดวสแทน โดยเรม่ิ ตนใหคลกิ เลอื กไว ตัวเลือก Disable access control หมายถึงอนุญาตใหเครื่องอื่นสามารถใชงาน VcXsrc ที่เปดจาก เครืองฝง วินโดวส เครอื่ งน้ไี ด โดยเรม่ิ ตนใหคลิกไมเ ลือกไว ภาพที่ 6.13 หนาตางการต้งั คา พิเศษ จากนั้นคลิก Next เพื่อดำเนินการในขั้นตอนถัดไป และคลิก Finish ดำเนินการเสร็จสิ้น ซึ่งจะปรากฎ ไอคอนของแพ็คเกจ VcXsrc ทำงานอยทู ีเ่ ทรไ อคอนตรงมุมขวาลา งของเดกสท็อป หากเครื่องของผูอานเปดการทำงานงานของไฟรว อลลในวินโดวส ผูอานอาจพบหนาตางแจงเตือนความ มั่นคงปลอดภัยของวินโดวสดังภาพที่ 6.14 ในกรณีที่ผูอานไมมั่นใจวาการเชื่อมตอของ Hyper-V หรือ VMWare Workstaion Player ในปจ จุบนั ถูกตั้งคา ใหเปน เครอื ขา ยสว นตวั (Private networks) หรอื เครือขาย สาธารณะ (Public networks) ซง่ึ ไมใ ชก ารตั้งคา ของการเช่ือมตออินเทอรเน็ตทีผ่ ูอานกำลังใชงานอยู ใหผูอาน คลิกเลอื กท้งั สองเครอื ขาย และคลกิ Allow access เพ่อื ดำเนินการตอ ไป 107

ภาพที่ 6.14 หนาตา งแจง เตือนการอนุญาตกฎไฟรว อลล จากนั้นผูอานสามารถใชโปรแกรม Putty เพื่อเขาถึงระยะไกลไปยังเครืองแมขายได ใหตั้งคาสงตอการ แสดงผลกราฟก จากเคร่ืองแมขายผา นโปรแกรม Putty ท่เี มนู Connection > SSH > X11 จะปรากฏหนาตาง ดังภาพที่ 6.15 จากนัน้ คลิกเลอื ก Enable X11 forwarding และทำการเชอ่ื มตอ ไปยงั เครื่องแมขาย ภาพที่ 6.15 หนาตางการต้ังคาสง ตอ กราฟกผานโพรโตคอล SSH 108

6.9 การตดิ ตัง้ เคร่อื งมอื ชว ยบริหารจัดการผานกราฟก โปรแกรม KVM นอกจากสามารถสั่งงานผานบรรทัดคำสั่งดวยเครื่องมือ virsh แลวยังมีเครื่องมือใน โหมดกราฟก ท่ีชวยใหก ารบริหารจัดการเครอ่ื งคอมพวิ เตอรเสมือนสามารถดำเนินการไดสะดวกสำหรับผูเร่ิมตน ชื่อโปรแกรม virt-manager แตเนื่องจากโปรแกรม virt-manager ทำงานที่โหมดกราฟก ผูอานจำเปนตอง ติดตั้งแพ็คเกจโหมดกราฟกพื้นฐาน และแพ็คเกจสำหรับสงตอการแสดงผลกราฟกผานโพรโตคอล SSH ซึ่ง สามารถตดิ ตั้งไดดวยคำสง่ั # yum install xorg-x11-server-xorg xorg-x11-xauth เมื่อดำเนินการติดต้ังเสรจ็ เรียบรอ ยแลว ผูอานจะตองปดหนา ตา งของโปรแกรม Putty ทุกหนาตางและ เปดหนาตางใหมเ พื่อเช่ือมตอไปยังเคร่ืองแมขาย เพ่อื ใหฝ ง Putty และฝงเครอ่ื งแมขายรับรูการตั้งคาการสงตอ การแสดงผลโหมดกราฟกกอน จากนน้ั ผูอ า นสามารถดำเนนิ การตดิ ตั้งโปรแกรม virt-manager ไดดว ยคำสั่ง # yum install virt-manager เมือ่ ติดตั้งเสรจ็ แลว ผอู านสามารถเปดการทำงานของโปรแกรม virt-manager ไดด ว ยคำส่งั # virt-manager จากนั้นจะปรากฏหนาตางโหมดกราฟกของโปรแกรม virt-manager ที่ฝงระบบปฏิบัติการวินโดวส ดัง ภาพที่ 6.16 แสดงวา การเรียกการทำงานสำเร็จ ภาพท่ี 6.16 หนาตางหลกั โปรแกรมบรหิ ารจัดการเครอื่ งคอมพิวเตอรเสมือน 109

6.10 การสรางคอมพวิ เตอรเ สมือนผา นกราฟก เมื่อเขาสูห นาตางหลักของโปรแกรม virt-manager แลว ผูอานสามารถสรา งเครือ่ งคอมพิวเตอรเสมือน ใหมไดดวยการคลิกเลือกเมนู File > New Virtual Machine จากนั้นจะปรากฎหนาตางสรางเครื่อง คอมพิวเตอรเสมือนใหมดังภาพที่ 6.17 ใหผูอานเลือกที่มาของระบบปฏิบัติการ ซึ่งในบทกอนหนา ผูอานได ดาวนโหลดแฟมขอมูล CentOS8.iso เก็บไวท่ี /home เรียบรอยแลวหรือหากเปนระบบปฏิบัติการอื่น ผูอาน สามารถคัดลอกแฟมขอมูล iso สำหรับการติดตั้งระบบปฏิบัติการและเก็บไวในเครื่องแมขายกอน ในกรณีนี้ สามารถเลือก Local install media จากนนั้ คลกิ Forward เพ่อื ดำเนนิ ข้นั ตอนถดั ไป ภาพที่ 6.17 หนา ตา งสรา งเคร่ืองคอมพิวเตอรเสมือนใหม จากนั้นจะปรากฏหนาตางใหเลือกที่อยูของแฟมขอมูล iso ผูอานสามารถพิมพปอนที่อยูไดโดยตรง แต หากไมแนใจที่อยูของแฟมขอมูลสามารถคลิก Browse จะปรากฏหนาตาง Choose Storage Volume ดัง ภาพที่ 6.18 เพ่ือใหอ านสามารถเลอื กท่ีอยูของแฟม ขอมูล iso ได โดย default หมายถงึ ไดเรกทอรรี ูท (/) และ home หมายถงึ ไดเรกทอรีโฮม (/home) เม่ือเลือกแฟมขอ มูลทตี่ องการแลว สามารถคลิกที่ Choose Volume เพ่อื เลือกแฟมขอมูล 110

ภาพที่ 6.18 หนา ตา งเลอื กแฟม ขอมูลระบบปฏบิ ัตกิ าร จากนั้นผูอานควรเลือกประเภทของระบบปฏิบัติการซึ่งจะชวยใหโปรแกรม KVM ตั้งคาไดรเวอรท่ี เหมาะสมใหกับเครื่องคอมพิวเตอรเสมือนนั้น โดยหากโปรแกรม KVM ไมสามารถคนหาระบบปฏิบัติการเจอ โดยอัตโนมัติ ใหผูอานคลิกไมเลือก Automatically detect from the installation media/source แลว เลือกระบบปฏิบัติการ สำหรับระบบปฏิบัติการ CentOS 8 ผูอานสามารถเลือก CentOS 8 หรือ Red Hat Enterprise Linux 8 เปนตนไปไดทั้งคู เนื่องจาก CentOS เปนระบบปฏิบัติการที่คอมไพลจากรหัสตนฉบับ เดยี วกันกบั Red Hat Enterprise Linux จากนั้นคลกิ Forward เพ่อื ดำเนนิ การตอ ดังภาพที่ 6.19 ภาพที่ 6.19 หนาตา งเลอื กประเภทของระบบปฏบิ ัตกิ าร 111

จากนั้นจะปรากฎหนาตางใหตั้งคาจำนวนหนวยความจำหลักและจำนวนของแกนหนวยประมวลผล กลางดังภาพที่ 6.20 ซึ่งมีหลักการเดียวกันกับการใชบรรทัดคำสั่งเพียงแตเปนโหมดกราฟกใหผูอานเลือกได สะดวกสบายมากขึ้น เมื่อเลือกจำนวนหนวยความจำหลักและจำนวนของแกนหนวยประมวลผลกลางตาม ตอ งการแลว สามารถคลกิ Forward เพือ่ ดำเนินการตอ ภาพที่ 6.20 หนา ตางตง้ั คา ปรมิ าณหนว ยความจำหลักและหนว ยประมวลผล ขั้นตอนถดั ไปจะปรากฏหนาตางใหระบุขนาดของพ้นื ทด่ี สิ กเสมือนดังภาพที่ 6.21 โดยคาเร่มิ ตนอยูท่ี 20 GiB หรือหากใชดิสกเสมือนที่มีอยูเดิมสามารถเลือก Select or create custom storage เพื่อเลือกดิสก เสมือนเดิมมาใชกับเครื่องคอมพิวเตอรเสมือนใหม จากนั้นคลิก Forward จะเปนหนาตางใหตั้งชื่อเครื่องตาม ตองการ และหากตองการคลิกเลือก Customize configuration before install เพื่อดูการตั้งคาของเครื่อง และกดปุม Finish เพือ่ ดำเนินการสรางเคร่ืองคอมพวิ เตอรเ สมือน ภาพที่ 6.21 หนาตา งตงั้ คาขนาดของดสิ กเสมอื น 112

6.11 การเปดการเขา ถงึ ระยะไกลคอมพิวเตอรเสมอื นผานกราฟก โดยเรม่ิ ตน หากผูอ านสรา งเครื่องคอมพวิ เตอรเสมือนจากโปรแกรม virt-manager และไมไดดำเนินการ ปรับแก เครื่องคอมพิวเตอรเสมือนนั้นจะไมสามารถเขาถึงระยะไกลผานโพรโตคอล VNC ได โดยการปรับแก นั้นสามารถทำไดจากเมนูอยู 2 ชองทาง คือ ชองทางแรก คลิกเลือก Customize configuration before install ในขณะที่สรางเครื่องคอมพิวเตอรเสมือน เพื่อเขาสูหนาตาง Details หรือชองทางสอง ดับเบิลคลิก เครื่องคอมพิวเตอรเสมือน หรือเลือกเครื่องคอมพิวเตอรเสมือนแลวคลิก Open ที่แทบเมนูจากหนาตางหลัก ของโปรแกรม virt-manager เมื่อปรากฏหนาตางคอนโซลของเครื่องใหเลือกเมนู View > Details จะปรากฎ หนาตาง Details ดังภาพท่ี 6.22 ภาพที่ 6.22 หนาตา งแสดงรายละเอียดของเครือ่ งคอมพิวเตอรเสมือน ในหนา ตา ง Detail ผอู า นสามารถดรู ายละเอยี ดของอุปกรณเคร่ืองคอมพวิ เตอรเสมือนในรูปแบบกราฟก ไดจ ากแท็บ Details ทางฝง ขวา หากดรู ายละเอียดเปนแท็ก XML ไดโ ดยเลอื กแทบ็ XML ทางฝงขวาสลับไปมา เชนกัน แตโดยเริ่มตน ผูอานจะไมสามารถแกไขคา XML ไดโดยตรงซึ่งฟงกชันนี้ถูกปดไวเพื่อปองกันความ ผดิ พลาดจากผูเริ่มตนใชงาน แตหากตองการใหสามารถแกไขแฟมขอมูล XML ของเครื่องคอมพิวเตอรเสมือนได ผูอานสามารถเปด การแกไขคา XML ไดจากหนาตางหลักของโปรแกรม virt-manager และเลือกเมนู Edit > Preference จะ 113

ปรากฎหนาตาง Preferences ดังภาพที่ 6.23 จากนั้นแท็บ General ใหคลิกเลือก Enable XML edition และคลิก Close ภาพที่ 6.23 หนา ตา งตัวเลือกของโปรแกรมบรหิ ารจดั การเครอื่ งคอมพิวเตอรเ สมอื น การเพิ่มการเชื่อมตอผานโพรโตคอล VNC สามารถทำไดโดยคลิกปุม Add Hardware จากหนาตาง Details ของเครื่องคอมพิวเตอรเสมือนนั้นจะปรากฎหนาตาง Add New Virtual Hardware ดังภาพที่ 6.24 จากนั้นใหผูอานเลือก Graphics และทางแท็บฝงขวามือจะปรากฎตัวเลือกสำหรับการตั้งคาการเชื่อมตอผาน โพรโตคอล VNC ตัวเลือก Type มีอยู 2 ตัวเลือก คือ Spice Server เปนการเชื่อมตอกราฟกแบบ X Windows ผาน โพรโตคอล SSH ซึ่งการเชื่อมตอแบบนี้ใชแบนวิธดมากและไมมีประสิทธิภาพเทาที่ควร อีกตัวเลือกหนึ่งเปน VNC Server ซ่งึ เปนโพรโตคอลท่ีออกแบบมาเพ่อื เขา ถงึ ระยะไกล เมือ่ เลอื ก Type เปน VNC Server แลว จะปรากฏตัวเลือกถดั ไป ตัวเลือก Listen type เลือกเปน Address เพื่อกำหนดอินเตอรเฟสของเครื่องแมขายที่ตองการรับการ เช่อื มตอผานโพรโตคอล ตัวเลือก Address ใชระบุอินเตอรเฟสที่ตองการ ผูอานสามารถเลือก LocalAddress เมื่อตองการให เฉพาะเครื่องแมขายสามารถเขาถึงได เพื่อจะไดตั้งคาการเชื่อมตอที่ปลอดภัยผานโพรโตคอล SSH ในภายหลงั แตหากตองการใหเชื่อมตอผานโพรโตคอล VNC โดยตรงโดยไมมีการเขารหัสจากทกุ อินเตอรเฟสของเครือ่ งแม ขายสามารถเลือก All interfaces ตวั เลอื ก Port หากระบเุ ปน Auto เคร่อื งคอมพวิ เตอรเสมือนจะจดั สรรพอรต ตั้งแต 5900 เรียงไปเรื่อยๆ ตามลำดับของเครื่องคอมพิวเตอรเสมือนที่กำลังเปดการทำงานเทานั้น แตหากตองการจัดสรรพอรตที่แนนอน สามารถคลกิ ไมเลือก Auto และระบุพอรต ตามตอ งการได ตวั เลอื ก Password ใชระบุรหัสผา นสำหรับการเขาถงึ เคร่ืองคอมพวิ เตอรเ สมือนผา นโพรโตคอล VNC ตวั เลือก Keymap ใชร ะบรุ ูปแบบของคียบอรด ควรต้ังคา ไวท่ี Auto 114

เม่อื ตั้งคา เสร็จแลว คลิกปุม Finish เพอื่ เพมิ่ การเช่ือมตอผา นโพรโตคอล VNC ใหก ับเครื่องคอมพิวเตอร เสมือน ภาพที่ 6.24 หนาตางเพิ่มอปุ กรณเ สมือนใหม ในการเพิ่มอุปกรณเสมือนใหม หากเครื่องคอมพิวเตอรเสมือนกำลังทำงานอยู โปรแกรม KVM จะไม สามารถบงั คับใชการเพิ่มอปุ กรณเสมือนได ดังนัน้ โปรแกรม virt-manager จะแสดงหนา ตางใหผูอานทราบวา อุปกรณที่เพิ่มเขาไปนั้นยังไมไดทำงานทันที และจะมีผลก็ตอเมื่อปดเครื่องและเปดเครื่องคอมพิวเตอรเสมือน ใหมอีกคร้ังเทาน้ัน ใหผ ูอานตอบ Yes เพอื่ ยืนยนั และรบั ทราบ ดงั ภาพท่ี 6.25 หลังจากท่ีปดและเปดเครือ่ งคอมพวิ เตอรเ สมือนใหมอ ีกครง้ั การเขาถงึ ระยะไกลผา นโพรโตคอล VNC จึง จะสามารถทำงานไดเ ปน ปกติ 115

ภาพท่ี 6.25 หนาตางยืนยนั การเพิ่มอปุ กรณเสมือนใหม อยางไรก็ตาม หากผูอานเพิ่มการเชื่อมตอผานโพรโตคอล VNC โดยอนุญาตใหเขาถึงระยะไกลโดยตรงท่ี พอรตของโพรโตคอล VNC ผูอานจำเปนจะตองการอนุญาตของไฟรวอลลดวยคำสั่ง firewall-cmd เหมือนใน บทท่ี 5 หรือเลือกใชว ิธกี ารตงั้ คา การเชื่อมตอที่มนั คงปลอดภยั ของโพรโตคอล VNC ในบทที่ 5 เชน กัน 6.12 การเปดและปด การทำงานคอมพวิ เตอรเ สมอื นผานกราฟก สำหรับคำสั่งที่ดำเนินการของเครื่องคอมพิวเตอรเสมือนผานโหมดกราฟกจะใชคำที่มีความหมาย เชนเดียวกับคำสั่งที่ดำเนินการผานเว็บ โดยผูอานสามารถสั่งการเปดปดการทำงานของเครื่องคอมพิวเตอร เสมอื นในโปรแกรม virt-manager ได 2 ชอ งทาง ไดแก ชองทางแรก จากหนาจอหลักของโปรแกรม virt-manager ผูอานสามารถคลิกขวาที่รายการเครื่อง คอมพวิ เตอรเ สมอื นทต่ี อ งการ และสามารถเลอื กเมนู Run เพอ่ื เปด การทำงาน ดงั ภาพท่ี 6.26 ภาพที่ 6.26 หนา จอแสดงเมนจู ากการคลิกขวาของรายการเคร่ืองคอมพิวเตอรเสมือน 116

ชองทางที่สอง เมื่อกำลังดูหนาจอคอนโซลของเครื่องคอมพิวเตอรเสมือนนั้น ดวยปุม Open จากแทบ เมนูของหนาตางจอหลัง ในหนาตางที่แสดงผลหนาจอคอนโซลจะมีเมนู Virtual Machine ที่ผูอานสามารถ ดำเนินการเกยี่ วกับเคร่ืองคอมพวิ เตอรเ สมือนได เชน Run เพ่ือเปด การทำงาน ดงั ภาพที่ 6.27 ภาพที่ 6.27 หนาจอแสดงแท็บเมนูของเครื่องคอมพิวเตอรเสมอื น เมื่อเครื่องคอมพิวเตอรเสมือนกำลังเปดการทำงานอยู เมนูการ Shut Down จะสามารถเลือกไดตาม ภาพที่ 6.28 โปรแกรม virt-manager มีตัวเลือกใหปดเครื่องได 4 รูปแบบที่เหมือนกับตัวเลือกในโปรแกรม cockpit ภาพท่ี 6.28 หนาจอเมนตู ัวเลือกการปดเคร่อื งคอมพิวเตอรเ สมือน 117

6.13 การลบคอมพิวเตอรเ สมือนผานกราฟก การลบเคร่อื งคอมพวิ เตอรเ สมือนผา นโหมดกราฟก สามารถลบไดจากเมนูท้ัง 2 ชอ งทางเชนเดียวกับการ เปดปดการทำงานเครื่องคอมพิวเตอรเสมือน เมื่อคลิกเลือก Delete แลว โปรแกรม virt-manager จะแสดง หนาตางใหผูอานยืนยันการลบเครื่องคอมพิวเตอรเสมือน วาตองการลบดิสกเสมือนไปพรอมกับเครื่อง คอมพวิ เตอรเสมือนหรือไม ดังภาพที่ 6.29 ในกรณีทลี่ บทุกดสิ ก ผูอ านสามารถคลิกเลือก Delete associated storage files แตห ากไมตองการลบดสิ กเสมือน ผอู านสามารถคลิกไมเลือกตามรายการดสิ กทไี่ มตองการลบได เมอื่ ตองการยนื ยันสามารถคลกิ ปุม Delete ภาพท่ี 6.29 หนาตางยนื ยนั การลบเครอื่ งคอมพิวเตอรเ สมอื น หลังจากที่คลิกปุม Delete หากผูอานลบดิสกเสมือนไปพรอมกัน โปรแกรม virt-manager จะแสดง หนาตางใหผูอานยืนยันอีกครั้ง หากตองการยืนยันการลบดิสกเสมือนคลิกปุม Yes สวนตัวเลือก Don’t ask me again ดังภาพที่ 6.30 ทางผูเขียนไมแนะนำใหผูอานคลิกเลือก เนื่องจากการลบดิสกเสมือนใน ระบบปฏิบัติการลีนุกซไ มมีถังขยะเหมอื นในระบบปฏิบัติการวินโดวส ทีส่ ามารถกูคืนแฟมขอมูลได และขั้นตอน การกูแฟมขอมูลนั้นเปนข้ันตอนทีเ่ สียเวลามาก เพราะตองสแกนดิสกทั้งดิสกเพื่อหาบล็อกทั้งหมดที่ยังไมไดถกู เขียนทับของแฟมขอ มูลนัน้ 118

ภาพท่ี 6.30 หนา ตา งยืนยันการลบแฟม ขอมูลดสิ กเ สมือนพรอ มกบั เครอ่ื งคอมพวิ เตอรเ สมอื น 119

บทสรปุ ผอู า นสามารถเลอื กใช 1) เครอ่ื งมอื เว็บโดยตดิ ตั้งแพค็ เกจ cockpit และใชเ ว็บเบราเซอรเขาถึงการตั้งคา 2) เครอ่ื งมอื กราฟก X Windows ผา นโพรโตคอล SSH โดยใช Putty เพือ่ เขา ถึงหนา ตา งโปรแกรมกราฟก การเขาถึงเครื่องมือผานเว็บเปนวิธีการที่เขาถึงงายที่สุดเพราะสามารถเขาถึงผานเว็บเบราเซอรใด หรือ จากอปุ กรณใ ดกไ็ ด แตตัวเลือกการตั้งคาจะมีไมมากเทา กบั การใชเ คร่ืองมือกราฟก X Windows แตการติดต้ังมี ขั้นตอนที่ยุงยากกวามาก เพราะจะตองติดตั้ง X Windows ที่คอมไพลสำหรับระบบปฏิบัติการวินโดวส และ เช่ือมตอผานโปรแกรม Putty เครื่องคอมพิวเตอรเสมือนที่สรางขึ้นจากโปรแกรม cockpit จะสามารถเชื่อมตอผาน VNC จากภายใน เคร่อื งแมข า ยได ผูอานไมส ามารถแกไ ข XML ไดจ ากทางหนาเวบ็ เครื่องคอมพิวเตอรเสมือนที่สรางขึ้นจากโปรแกรม virt-manager จะไมสามารถเชื่อมตอผาน VNC ได แตสามารถเพิ่มการเชื่อมตอไดโดยการเพิ่มอุปกรณเสมือน และระบุ VNC Server สวนการแกไข XML ของ เครื่องคอมพิวเตอรเสมือน โดยเริ่มตนไมสามารถทำได แตมีตัวเลือกที่เปดการอนุญาตการแกไข XML ของ เคร่อื งคอมพิวเตอรเ สมอื น 120

สรุปคำส่ังทีน่ า สนใจ เนอ้ื หา คำส่งั หรอื ช่ือคำส่ังท่เี ก่ียวของ แพ็คเกจทจ่ี ำเปนในการตดิ ตง้ั เครือ่ งมอื บรหิ ารจดั การ # yum install cockpit cockpit-machines ผา นเวบ็ ชือ่ บริการของเคร่ืองมอื บรหิ ารจดั การผา นเวบ็ cockpit ช่อื บริการสำหรบั ตง้ั คาผาน firewall-cmd หรอื ช่อื บรกิ าร cockpit พอรต 9090 โพรโตคอล tcp พอรตทท่ี ำงาน แกไ ขใหเ คร่ืองคอมพิวเตอรเ สมือนสามารถเชอ่ื มตอ # virsh edit demo-centos ผา น VNC จากเคร่อื งอืน่ ได คนหาบรรทัด <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'> <listen type='address' address='127.0.0.1'/> และแกไขใหเ ปน <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> ปดเครื่องคอมพิวเตอรด ว ยปุม Pause แบบหยดุ การทำงาน ณ สถานะน้ันไว การทำงาน คลา ยกับ Hibernate ใน Microsoft Windows ปดเคร่ืองคอมพวิ เตอรดวยปุม Shutdown การทำงานคลา ยกับทีผ่ อู า นเลือกพมิ พ systemctl poweroff เพ่ือปดเครือ่ งดวยตัวเอง ปด เครื่องคอมพิวเตอรด ว ยปุม Force Shutdown ปด เคร่อื งแบบบังคับปด ทันที เหมือนกดสวติ ซป ด เคร่อื งคา งไว 4 วินาที ทเ่ี คร่ืองคอมพิวเตอรจ ริง ปด เครอ่ื งคอมพวิ เตอรด วยปมุ Send Non- ปดโปรแกรมท่ีไมต อบสนองท้ิง และทำใหกลบั มา maskable Interrupt ทำงานไดตามปกติ การตง้ั คา การแสดงผลของ VcXsrc Multiple Windows Display number เปน -1 Start no client Clipboard > Primary Seclection Native opengl การตงั้ คา Putty เพื่อสง ตอกราฟก Connection > SSH > X11 เลือก Enable X11 forwarding แพค็ เกจทีจ่ ำเปนในการประมวลผลกราฟก และสง # yum install xorg-x11-server-xorg xorg-x11- ตอ กราฟก xauth แพค็ เกจของเคร่ืองมอื บรหิ ารจัดการผา นกราฟก # yum install virt-manager การต้ังคา ใหเคร่ืองมือบริหารจัดการผานกราฟก แกไข หนาตางหลัก > Preferences > General XML ของเคร่ืองคอมพวิ เตอรเ สมอื นได เลือก Enable XML Editing 121

แบบฝกหดั บทท่ี 6 1. บอกชอ่ื แพ็คเกจทีจ่ ำเปนสำหรบั เครื่องมือบรหิ ารจัดการผานเว็บ 2. บอกชอ่ื บริการของเครอ่ื งมอื บริหารจดั การผานเวบ็ 3. หากตองการเขาถึงเครื่องคอมพิวเตอรเสมือนผานโพรโตคอลดวยเครื่องมือบริหารจัดการผานเว็บจะตอง ตดิ ต้ังโปรแกรมเพมิ่ เตมิ หรอื ไม หากมีใหร ะบชุ อื่ โปรแกรม 4. หากตองการใหเครื่องคอมพิวเตอรเสมือนสามารถเขาถึงจากเครื่องระยะไกลได จะตองตั้งคาเครึอง คอมพิวเตอรเสมอื นอยางไร 5. คำสัง่ Shutdown และ Force Shutdown มคี วามเหมือนและความแตกตา งกนั อยางไร 122

6. อธิบายการตั้งคาตัวเลอื กเพม่ิ เติมในโปรแกรม VcXsrv 7. หากตอ งการต้ังคา การแสดงผลกราฟกระยะไกลผา น Putty จะตอ งต้งั คาอยางไร 8. แพ็คเกจใดในระบบปฏิบัติการลีนุกซจำเปนคำสั่งการประมวลผลกราฟกและสงตอการแสดงผลกราฟก ระยะไกลไปยงั เครื่องวินโดวส 9. การตอ งการต้งั คา VNC Server ใหกบั เครื่องคอมพิวเตอรเสมอื นผานเครื่องมอื กราฟกจะตอ งทำอยางไร 10. บอกวิธีการตั้งคา ใหโ ปรแกรม virt-manager อนุญาตใหแกไขขอ มูล XML ของเครือ่ งคอมพวิ เตอรเสมอื น 123

124

การจัดสรรทรัพยากรใหกับเครอื่ งคอมพวิ เตอรเ สมือน บทนำ ดวยการทำงานของระบบเทคโนโลยีเสมือนอยางโปรแกรม KVM ทำใหการจัดสรรทรัพยากรของเครื่อง โฮสตไปยงั เครอื่ งคอมพวิ เตอรเสมือนนน้ั เปน ไปอยางมีประสิทธิภาพ แตเ นอื่ งจากทรัพยากรท่ีอยูบนเครื่องโฮสต นั้นมีอยูจำกัด การตรวจสอบการทำงานของเครื่องคอมพิวเตอรเสมือนโดยเฉพาะการใชทรัพยากรของแตละ เครื่องเปนเรื่องสำคัญ เพราะหากเครื่องคอมพิวเตอรเสมือนเครื่องใดเครื่องหนึ่งไดรับทรัพยากรที่ไมเพียงพอ หรือไมเหมาะสมจะทำใหก ระทบการทำงานเครอ่ื งคอมพิวเตอรเสมือนอ่ืน ๆ ในโฮสตเดียวกันได 7.1 การตรวจสอบการใชทรพั ยากรเครือ่ งคอมพิวเตอรเสมอื น หลังจากที่สรางเครื่องคอมพิวเตอรเสมือนขึ้นมา ผูอานสามารถตรวจสอบทรัพยากรเครื่องคอมพิวเตอร เสมอื นนีใ้ ชงานไดดว ยการใชเ ครอื่ งมอื virsh ซึ่งคำสั่ง virsh มีโครงสรางของคำส่ังดังนี้ # virsh <operation> <vm_name> <options> โดยที่ <operation> เปนคำสั่งที่ใชตรวจสอบสวนตาง ๆ <vm_name> เปนชื่อเครื่องคอมพิวเตอร เสมือน ในกรณีน้ีผูอานจะใชชื่อเครื่องที่สรางขึ้นมาในบทเรียนกอนหนา คือ demo-centos และสวนสุดทาย <options> คือสวนเสริมของคำสงั่ โดยทั่วไปมักใชก ำหนดรายละเอยี ดการแสดงผลของคำสัง่ 1) หากตองการตรวจสอบจำนวนหนวยประมวลผลกลางเสมือน พรอมรายละเอียดการใชหนวย ประมวลผลกลาง สามารถใชคำสง่ั # virsh vcpuinfo demo-centos 2) หากตองการตรวจสอบจำนวนหนวยประมวลผลกลางเสมือน ปริมาณหนวยความจำหลัก สถานการณทำงานปจจบุ นั สามารถใชค ำสง่ั # virsh dominfo demo-centos 3) หากตองการตรวจสอบชื่อ และจำนวนดิสกที่ใชงานอยูปจจุบัน ซึ่งจะแสดงรายการเปนตัวอักษร vda vdb ไปเรอื่ ย ๆ หมายถึงลำดับของดิสกใ นเคร่อื งคอมพิวเตอรเสมือน สามารถใชคำส่ัง # virsh domblklist demo-centos 4) หากตองการตรวจสอบพื้นที่ดิสกสูงสุด พื้นที่ดิสกที่จองไวจริงบนโฮสต จะตองนำชื่อของดิกสที่ได จากคำสัง่ ขอ 4) มาใสเ ปนพารามิเตอรต อ ทา ย เชน vda สามารถใชคำสง่ั # virsh domblkinfo demo-centos vda แตถา ตอ งการใหแสดงผลสวยงามสามารถใชพารามิเตอร --human เพื่อจดั รูปแบบได # virsh domblkinfo demo-centos vga --human 125

5) หากตองการตรวจสอบการเขียนอานของดิกส จะตองนำชื่อของดิกสที่ไดจากคำสั่งขอ 4) มาใสเปน พารามิเตอรตอทา ย เชน vda สามารถใชค ำส่ัง # virsh domblkstat demo-centos vda แตถา ตองการใหแ สดงผลสวยงามสามารถใชพารามิเตอร --human เพอื่ จัดรูปแบบได # virsh domblkstat demo-centos vga --human 6) หากตอ งการตรวจสอบจำนวน และชื่อของอนิ เตอรเ ฟสเครอื ขายเสมือน ที่ใชง านอยูใ นปจ จุบนั # virsh domiflist demo-centos 7) หากตอ งการตรวจสอบการรบั สงขอมูลของอนิ เตอรเฟสเครือขา ยเสมอื น จะตอ งนำชอื่ อินเตอรเฟสที่ ไดจากคำส่งั ขอ 7) มาใสเปน พารายมิเตอรต อทา ย เชน vnet0 สามารถใชคำสั่ง # virsh domifstat demo-centos vnet0 7.2 การปรบั แตง ซีพียแู ละหนว ยความจำหลักของเครอ่ื งคอมพิวเตอรเ สมอื น หากตองการเปลี่ยนจำนวนหนวยประมวลผลกลางเสมอื น ใหระบุจำนวนหนว ยประมวลผลกลางเสมือน ที่ตองการเปลี่ยนใหเปนพารามิเตอรของคำสั่ง เชน หากตองการเปลี่ยนจำนวนหนวยประมวลผลกลางเสมือน เปน 3 สามารถใชค ำส่ัง # virsh edit demo-centos จากน้นั คนหาสวนของขอ มูลที่ระบุ <vcpu placement='static'>1</vcpu> โดยเปล่ยี นจากเลข 1 เปน เลข 3 ไดผ ลลัพธด งั นี้ <vcpu placement='static'>3</vcpu> การเปลี่ยนแปลงจะมีผลก็ตอเมื่อรีบูตเครื่องคอมพิวเตอรเสมือนกอน แมวา virsh จะมีพารามิเตอร สำหรับเปลี่ยนจำนวนหนวยประมวลผลกลางเสมือนทันที แตก็ไมเปนที่แนะนำเพราะทำใหเคร่ืองคอมพิวเตอร เสมือนขาดความเสถียรหากระบบปฏิบัติการไมไดตั้งคาใหรองรับฟเจอร CPU hotplug หมายถึงสามารถเพิ่ม ลดจำนวนของหนวยประมวลผลกลางไดโดยที่ไมตองรีบูตเครื่อง (The kernel development community 2020) หารตองการเปลี่ยนปริมาณของหนวยความจำหลักที่จองไวใหเครื่องคอมพิวเตอรเสมือนมีตัวเลขอยู 2 คา ไดแก ปริมาณหนวยความจำหลักสูงสุด และปริมาณหนวยความจำหลักปจจุบัน ในบางระบบปฏิบัติการ 126

สนับสนุนการจองหนว ยความจำหลกั แบบเปล่ียนแปลงไดต ลอด ตวั เลขทัง้ 2 คาน้ีอาจไมเ ทากัน แตหากตองการ ความเสถียรของเครื่องควรตั้งคาใหตัวเลขทั้ง 2 คานี้เทานั้น โดยคาเริ่มตนของหนวยการกำหนดปริมาณ หนวยความจำหลักเปน กโิ ลไบต (KiB) แตผอู านสามารถระบุหนวยอ่นื ๆ เชน เมกะไบต (MiB) กก๊ิ กะไบต (GiB) หรอื เทราไบต (TiB) เพ่ือความสะดวกในการกำหนดตัวเลขได หากตองการเปลย่ี นท้ังปริมาณหนว ยความจำหลัก สูงสุด และปริมาณหนวยความจำหลักปจจุบันใหเปน 768 เมกะไบต สามารถใชคำสั่งไดโดยปดเครื่อง คอมพิวเตอรเ สมือนกอน ตัง้ คาปริมาณหนวยความจำหลักสงู สุด และเปด การทำงานเคร่ืองคอมพิวเตอรเสมือน ตามลำดบั ดังนี้ # virsh shutdown demo-centos # virsh setmaxmem demo-centos 768MiB # virsh start demo-centos หมายเหตุ หากตองการตั้งคาปริมาณหนวยความจำหลักเปน 1.5 กิ๊กกะไบต จะไมสามารถระบุเปน ตัวเลขทศนยิ มอยา ง 1.5GiB ได แตจ ะตอ งระบเุ ปน 1536MiB แทน 7.3 การเพ่มิ ดิสกใ หมใ หเ คร่ืองคอมพวิ เตอรเ สมือน ในมุมมองของดิสกในเครื่องคอมพิวเตอรเสมือนหมายถึงฮารดแวรทีเ่ ปนเหมือนฮารดดิสกที่เชื่อมตอเขา กับเครื่องคอมพิวเตอร แตในแงของเทคโนโลยเี สมือนน้ัน ดิสกคือแฟมขอมูลชนดิ หนึ่งที่เก็บขอมูล (Data) และ เมตาดาทา (Metadata) ที่อธิบายขอมูลในแฟมอีกที เนื่องจากในปจจุบันมีโปรแกรมที่ทำระบบเทคโนโลยี เสมือนหลายผูขาย ดังนัน้ จงึ มีหลายประเภทแฟม ขอมูลท่ีโปรแกรม KVM รองรบั ดังน้ี 1) Raw เปนประเภทขอมูลที่เก็บขอมูลดิบไว โครงสรางแบบนี้เรียบงายและสามารถสงออกไปยัง โปรแกรมระบบเทคโนโลยีเสมือนอื่นไดงาย มีเฉพาะขอ มูลที่ม่ีอยจู รงิ จะถูกบนั ทึกลงไปในแฟมขอมูล นี้ ขนาดของแฟมขอมูลจะมีขนาดใหญท่สี ดุ และไมสนับสนนุ การสำรองและกคู ืนสถานะของดิสก 2) Qcow2 เปน ประเภทขอมลู ทีเ่ ก็บขอมูลดบิ และเมตาดาทาอ่นื ๆ พรอมท้งั ทำการเขารหัสและบีบอัด แฟมขอมูลดวย แฟมขอมูลนี้เปนโครงสรางเริ่มตนสำหรับโปรแกรม KVM ในรุนปจจุบัน (เวอรชัน libvirt 4.0) สนับสนุนการสำรองและกูคืนสถานะของดิสก ขนาดของแฟมขอมูลจะมีขนาดเล็กท่ีสุด เพราะผานการบบี อัด 3) Vmdk เปนประเภทขอมูลที่บริษัท VMWare Inc. เปนผูพัฒนาขึ้น ในปจจุบัน Vmdk มีถึงเวอรชัน 5 และบริษัทผูพัฒนาไดเปดเผยรหัสตนฉบับแลว ทำใหโปรแกรม KVM สามารถอานและบันทึก แฟมขอ มลู โครงสรา งประเภทนี้ได อยางไรก็ตามโปรแกรม KVM สนับสนุนการบริหารจัดการแฟมขอมูลประเภท Qcow2 มากที่สุด (RedHat Inc. 2020a) ดังนั้น หากเปนการสรางเครื่องคอมพิวเตอรเสมือนและดิสกใหมในโปรแกรม KVM ผูเ ขยี นแนะนำใหผ ูอานสรา งดวยดิสกป ระเภท Qcow2 แตห ากเปนการเคร่ืองคอมพิวเตอรเสมือนและดิสกใหม ทต่ี องการยา ยไปในระบบนเิ วศของ VMWare ผอู านกส็ ามารถเลือกสรางดิสกป ระเภท Vmdk ได 127

การสรา งดสิ กใหมน ัน้ สามารถใชเคร่ืองมือชื่อ qemu-img ได โดยโปรแกรมจะสรา งแฟม ขอ มลู ขึน้ มาหน่ึง แฟม โดยคาเริ่มตนควรวางแฟมขอมูลดิสกเสมือนไวที /var/lib/libvirt/images แตหากวางแฟมขอมูลไวที่อื่น แฟม ขอ มลู นน้ั จะตอ งมีบรบิ ทของแฟม ขอมูลเปน virt_image_t การสรางดิสกใหมสามารถใชคำสั่ง qemu-img create ได โดยท่ีมี -o เปนพารามิเตอรที่ระบุเงื่อนไข เพมิ่ เติม จากคำสงั่ น้ีไดระบุเง่อื นไข preallocation ซึ่ง preallocation มีการต้งั คา ไดทั้งหมด 4 รูปแบบ ไดแก off metadata falloc และ full ซ่ึงมีความหมายดังตอไปนี้ -o preallocation=off เปนการระบุวาไมมีการจองพื้นที่ของดิสกและขอมูลเมตาดาทาใด ๆ การสราง ดิสกประเภทนี้จะสามารถสรางดิสกไดทันที แตประสิทธิภาพของดิสกจะต่ำที่สดุ เนื่องจากไมไดเตรียมขอมูลใด ๆ ไวในเครือ่ งคอมพวิ เตอรเสมอื นใชง าน -o preallocation=metadata เปนการระบุวาจองพื้นที่และใชพื้นที่จริงเก็บขอมูลเมตาดาทาทั้งหมด ของดิสก และไมไดจองพื้นที่ดิสกสำหรับเก็บขอมูล การสรางดิสกประเภทนี้จะสรางไดชากวาแบบแรก ประสิทธิภาพของดิสกในการอานจะมีความเร็วปกติ แตประสิทธิภาพของดิสกในการเขียนจะชากวาอีกสอง รูปแบบถดั ไป -o preallocation=falloc เปนการระบุวาจะจองพื้นที่และใชพื้นที่จริงเก็บขอมูลเมตาดาทาทั้งหมด และทำเครื่องหมายพื้นที่บนดิสกวาถูกใชแลว แตยังไมไดเขียนขอมูลใหมเพื่อลางขอมูลเดิมที่อยูบนดิสก การ สรางดิสกประเภทนี้จะสรางไดชากวาสองแบบแรก แตประสิทธิภาพของดิสกในการอานและเขียนจะมี ประสิทธภิ าพสูงสุด -o preallocation=full เปนการระบุวาจะจองพื้นที่และใชพื้นที่จริงเก็บขอมูลเมตาดาทาและขอมูล ท้ังหมด โดยเขยี นขอมลู ศูนยล งพน้ื ในทุกบลอ็ กของดิสก การสรางดิสกป ระเภทนจ้ี ะสรางไดชา กวาสามแบบแรก มาก แตป ระสิทธิภาพของดสิ กในการอานและเขยี นจะมีประสิทธภิ าพสูงสดุ จากประสบการณของผูเขียนและการทดสอบความเร็วของดิสกเบื้องตนพบวา หากฮารดดิสกที่เครื่อง ของผูอานใชงานเปน ฮารดดิสกแบบจานแมเหล็กหมุน เพื่อใหไดประสิทธิภาพการทำงานของดิสกเสมือนสงู สดุ และลดการกระจายตัวของขอมูล ผูอานควรจองพื้นที่แบบ -o preallocation=full เนื่องจากฮารดดิสก ประเภทจานแมเหล็กมีความออนไหวกับการอานและเขียนขอมูลแบบสุมมาก แตถาฮารดดิสกที่เครื่องของ ผูอานใชงานเปนฮารดดิสกแบบแฟลช หรือเอสเอสดี เพื่อใหไดประสิทธิภาพที่เหมาะสม ผูอานควรใชการ จัดสรรพื้นที่แบบ -o preallocation=metadata เนื่องจากทั้งการจองพื้นที่ของดิสกแบบ metadata falloc และ full ตางก็ทำใหเ กดิ การกระจายตวั ของขอมูลเหมือนกนั แมร ะดบั การกระจายตวั ของขอมลู บนดิสกเสมือน จะกระจายจากมากไปนอยตามลำดับรูปแบบการจองพ้นื ท่ีดิสก แตด สิ กป ระเภทแฟลชมีความออนไหวนอยมาก ในระดับการกระจายตวั ของขอมูลท่ีแตกตางกัน ดงั นั้น หากเครือ่ งของผูอา นมีฮารด ดิสกแบบเอสเอสดี สามารถ สรางดิสกเ สมือน ไดด ว ยคำสั่งน้ี # qemu-img create -f qcow2 -o preallocation=metadata /var/lib/libvirt/images/<ช่อื แฟ้ม>.qcow2 <ขนาด> 128

คำสั่งขางตนเปนคำสั่งใหสรางขอมูลเมตาดาทาของฮารดดิสกขนาด 5 กิ๊กกะไบต และ <ขนาด> จะมี หนวยเปน k หมายถึงกิโลไบต M หมายถึงเมกะไบต G หมายถึงกิ๊กกะไบต T หมายถึงเทราไบต เปนตน เชน หากตองการสรา งดสิ กเสมือนชื่อ demo-centos-data ท่ีมีขนาด 5 ก๊ิกกะไบต สามารถใชคำสง่ั # qemu-img create -f qcow2 -o preallocation=metadata /var/lib/libvirt/images/demo-centos-data.qcow2 5G เมื่อพิมพคำสั่ง เครื่องมือ qemu-img จะสรางแฟมขอมูลและบันทึกไวที่ /var/lib/libvirt/ images/demo-centos-data.qcow2 แตถึงแมผูอานจะระบุขนาดของดิสกเสมือนเปน 5 กิ๊กกะไบต แต โปรแกรม qemu-img จะไมไดจองพนื้ ท่ีจำนวน 5 กิ๊กกะไบตเ อาไวใ หโดยอัตโนมตั ิ โดยเม่อื ผูใ ชเรม่ิ เก็บขอมูลใน ดิสกเสมือนแลว ขนาดที่แฟมขอมูลที่จองไวจะมีขนาดใหญขึ้นตาม แตจะมีขนาดขอมูลที่เครื่องคอมพิวเตอร เสมอื นเกบ็ นั้นจะมขี นาดสูงสดุ ไมเ กนิ 5 กกิ๊ กะไบต เมอ่ื พมิ พคำส่ัง ผูอ า นสามารถตรวจสอบดสิ กเสมือนท่สี รา งขึ้นวาไดส รา งขน้ึ ตามคาท่ีกำหนดไวหรือไมโดย สามารถใชค ำสั่ง # qemu-img info /var/lib/libvirt/images/demo-centos-data.qcow2 ภาพที่ 7.1 หนา จอผลลัพธการสรา งดสิ กเสมือน จากภาพที่ 7.1 เมื่อพิมพคำส่ังจะปรากฏขอ มูลของดสิ กเสมอื นวาเปน รูปแบบ qcow2 มีขนาดพื้นท่ี 5.0 ก๊กิ กะไบต 7.4 การเพิ่มดิสกทมี่ อี ยแู ลวใหเ คร่อื งคอมพิวเตอรเ สมือน การเพิ่มดิสกที่มีอยูแลว หรือสรางไวแลวใหกับเครื่องคอมพิวเตอรเสมือนนั้นประกอบดวย 2 ขั้นตอน หลัก คือ ขั้นตอนแรก เพิ่มแฟมขอมูลดิสกเสมือนใหกับเครื่องคอมพิวเตอรเสมือน ขั้นตอนนี้เปรียบเสมือนการ นำฮารดดิสกมาตอพวงกับพอรต SATA หรือ M.2 ในเครื่องคอมพิวเตอรทางกายภาพ แตขั้นตอนนี้ ระบบปฏิบัติการยังไมสามารถใชดิสกได เพราะวาจะตองฟอรแมตและเพิ่มดิสกเขาไปในเครื่องกอน ดังนั้น ใน ข้ันตอนท่สี องจะเปน การฟอรแมต และเพิม่ พนื้ ที่ดิสกเขาไปในเคร่ืองคอมพิวเตอรเสมอื นเพ่ือใหร ะบบปฏิบัติการ สามารถนำไปใชง านได 129

ในขั้นตอนแรก การเพิ่มดิสกเสมือนเขาไปในเครื่องคอมพิวเตอรเสมือนสามารถทำไดดวยคำสั่ง virsh โดยมีตัวดำเนินการเปน attach-disk แตกอนจะนำเขาดิสกนั้นจะตองตรวจสอบกอนวาเครื่องคอมพิวเตอร เสมือนนั้นปดการทำงาน และเครื่องคอมพิวเตอรเครื่องนั้นมีดิสกอยูหรือไม เปนดิสกชื่ออะไร เพราะจะตอง กำหนดชื่อที่ไมซ้ำกันใหกับดิสกใหมดวย โดยใชคำสั่ง virsh domblklist ในหัวขอกอนหนานี้ จากภาพที่ 7.2 เครื่องคอมพิวเตอรเสมือน demo-centos มีดิสกเสมือนอยูแลวชื่อ vda ดังนั้นดิสกถัดไปที่จะเพิ่ม ผูอานควร จะตงั้ ชอ่ื วา vdb vdc ไปเรอ่ื ย ๆ ภาพที่ 7.2 หนาจอผลลัพธคำสัง่ ตรวจสอบดิสกของเคร่ืองคอมพิวเตอรเสมือน การเพิม่ ดสิ ก /var/lib/libvirt/images/demo-centos-data.qcow2 สามารถใชค ำสั่ง # virsh attach-disk demo-centos \\ --source /var/lib/libvirt/images/demo-centos-data.qcow2 \\ --target vdb \\ --driver qemu –subdriver qcow2 --targetbus virtio \\ --persistent เม่อื พมิ พคำสั่ง สามารถตรวจสอบรายการดสิ กเสมอื นวาไดถกู แนบไปแลวหรอื ไม ภาพท่ี 7.3 หนาจอผลลัพธคำสัง่ ตรวจสอบรายการดสิ กเ สมอื น จากภาพที่ 7.3 ดิสกเสมือนจะถูกเพิ่มเขาไปในระบบปฏิบัติการลีนุกซและมีชื่อดิสกวา vdb จากนั้นให เขาถึงหนาจอคอนโซลของเครื่องคอมพิวเตอรเสมือน ซึ่งสามารถเขาถึงไดหลายวิธี ไดแก ผานโปรแกรม VNC Viewer ผานเว็บโดยใชโปรแกรม cockpit ผานคอนโซลดวยคำสั่ง virsh console หรือผานการเขาถึง ระยะไกลดว ยโพรโตคอล SSH 130


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook