หากทำงานไดถ ูกตอ งจะปรากฏผลลัพธ ดงั ภาพท่ี 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
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336