ผมไม่ได้ให้ ESX spotlight มากบน Dedoimedo เราจะแก้ไขอย่างรวดเร็ว หลังจาก tutorial เรื่องการ clone virtual machines ใน ESXi ของผม มาสักครู่ ถึงเวลาเปิดเผย VMware goodness เพิ่มเติม ESXi เป็น bare-metal hypervisor เสนอฟรี เป็นขั้นตอนต่อไปสู่ ESX virtualization solution ที่มีราคาแพงที่สุดและ capable ที่สุด
เผื่อคุณกำลังสงสัย มี VMware Player และ Workstation ซึ่งมุ่งไปที่ home users มี VMware Server ซึ่งเป็น free demonstration version ของสิ่งที่ ESX ทำได้ แต่ในมาตราส่วนเล็กกว่า ESXi มาก และแล้วก็มี ESXi มันมี built-in limitations บางอย่าง เรียกมันว่า locked bonuses ได้ หากคุณต้องการใช้ ESXi ให้เต็มที่ คุณต้องทำ extra work บ้าง ดังนั้นจึงมีบทความ tips and tricks นี้

Micro disclaimer
ผมไม่ใช่ VMware expert แค่ enthusiastic user แม้กระนั้น ผมคิดว่าบทความของผมเกี่ยวกับเรื่องนี้ควรช่วยคุณได้ นอกจากนี้ มีทรัพยากรดีเยี่ยมเยอะอยู่ในส่วน More reading ด้านล่าง OK ตอนนี้มาทำกัน
Optimize guest performance
การรันที่ full speed สำคัญ โดยเฉพาะหากคุณมี multiple virtual machines แย่งชิง limited resources คุณอยาก leverage และ balance system usage ในลักษณะที่ดีที่สุด เราอยากได้ best performance โดยไม่ทำลายหรือจำกัด functionality
สิ่งนี้ทำได้โดยการ edit advanced virtual machine properties โปรดสังเกต พารามิเตอร์ทั้งหมดที่แสดงใน GUI ที่นี่ สามารถตั้งค่า manual ใน virtual machine configuration files ได้ ผมจะแสดง GUI ที่นี่ และทิ้ง command line ไว้บทช่วยสอนหน้า
พารามิเตอร์สำคัญบางอย่างรวมถึง:
Expose/hide Nx flag ซึ่งเพิ่ม VMotion compatibility ระหว่าง hosts VMotion เป็น payware feature ดังนั้น หากคุณไม่วางแผนใช้ ให้ hide Nx flag เพื่อปรับปรุง guest performance ตอนนี้ ไม่มี blanket setting ที่ทำงานได้กับทุกอย่าง คุณจะต้องตรวจสอบว่า setting นี้適用กับ machines ของคุณหรือไม่
Paravirtualization อนุญาตให้ supported guest operating systems รันด้วยประสิทธิภาพที่ดีขึ้นอย่างมีนัยสำคัญ หากพวกมันบอกได้ว่ากำลังถูกรันแบบ paravirtualized บาง OS จะปฏิเสธการรันแบบนี้เลย บางอันไม่ได้รับผลกระทบเลย Your best bet คือ Linux ในกรณีนี้
โปรดสังเกตว่า guest ของคุณต้อง aware/support paravirtualization หมายความว่า kernel ต้อง compile ด้วย paravirtualization และ VMI options enabled
CONFIG_PARAVIRT=Y
CONFIG_VMI=Y
โดยทั่วไป recent Linux kernels มาแบบนี้แล้ว อย่างไรก็ตาม ESXi รองรับ paravirtualization สำหรับ 32-bit guests เท่านั้น ดังนั้นเลือกตามนั้น
Hardware Page Table Virtualization เป็น performance facility อีกอย่าง เมื่อใช้อย่างถูกต้อง อีกครั้ง ขึ้นอยู่กับ CPU และ workloads เฉพาะของคุณ คุณอาจได้ประโยชน์จากการใช้มัน เหมือนกัน ตัวเลือกนี้ซ่อนอยู่ใน Advanced menu options
Swapfile location อาจเป็น major performance booster หาก disk array ของคุณช้า การรัน multiple virtual machines พร้อมกันอาจนำไปสู่ serious performance penalty โดยเฉพาะหากทุกตัว swap อยู่ เพื่อลด IO thrashing คุณอาจอยากใช้ multiple swapfiles แยกกระจายไปหลาย storage devices โดย default ESXi จะใช้ settings ที่มีบน host สำหรับ best performance คุณอาจอยากใช้ dedicated datastore
Boot delay
สมมติว่าคุณอยากติดตั้ง guest จาก CD หรือ ISO image ไม่มีปัญหา คุณแค่ต้องเปลี่ยน boot priority ให้ใช้ CD-ROM ก่อน hard disk หรือ network อย่างไรก็ตาม โดย default ESXi BIOS ไม่มี delay ซึ่งอาจก่อให้เกิดความหงุดหงิดในการพยายามได้ผลลัพธ์ที่ต้องการ
ไม่มีปัญหา คุณสามารถระบุ machine boot delay แบบ manual ใน configuration options ได้ คุณยังสามารถ force ให้ boot ถัดไปเข้า BIOS setup screen ได้ ซึ่งอาจมีประโยชน์สำหรับความต้องการเฉพาะของคุณ
Extra options
ตอนนี้ หากคุณพบว่าบาง features หรือ options หายไป คุณสามารถเพิ่มบรรทัดเข้าไปใน virtual machine configuration file แบบ manual ได้ คุณไม่ต้องขุดเข้า datastore หา .vmx file ที่ถูกต้อง แม้ว่าโดยทั่วไป หากคุณวางแผน scripting และ automation คุณควรทำ
ใน virtual machine properties window ภายใต้ Option, Advanced, General มีปุ่มที่บอกว่า Configuration Parameters นี่คือสิ่งที่เราต้องการ
Configuration Parameters window เป็น simple name, value table ที่คุณสามารถ input VMware options ได้เกือบหมด คุณยังสามารถใช้ experimental features ได้ แต่ระวังการทำลาย vendor support model คุณสามารถเพิ่ม extra rows ได้ แต่มันไม่สามารถ delete จากภายใน management interface ได้ สิ่งแบบนี้ส่วนใหญ่จะดึงดูด skilled และ very advanced users ที่มี special needs
สุดท้าย ภายใต้ Resources คุณสามารถตั้งค่า CPU, memory และ disk options ในทุกแบบได้ ตัวอย่างเช่น คุณสามารถเลือก hyperthreading sharing mode ได้ หาก CPU ของคุณรองรับและ feature enabled ใน BIOS คุณยังสามารถตั้งค่า processor affinity บังคับให้ virtual machines รันบน specific processors เท่านั้น แม้การ tweak อย่างถูกต้องอาจนำมาซึ่ง immense performance gains คุณก็สามารถทำลาย mode of work ของคุณได้ง่ายมากด้วยการใช้ incorrect settings
ตัวอย่างเช่น หากคุณรู้ว่าจะใช้ virtual machine ที่ปกติรัน application ที่ fork ลูกเยอะ การบังคับให้รันบน single core อาจนำไปสู่ performance loss เหมือนกัน parallel compilation หรือ execution ของ workflows จะได้รับผลกระทบอย่างมากจาก hyperthreading และ CPU affinity อาหารให้ความคิด
Time sync
อาจมีหลายเหตุผลที่คุณอยากให้ time sync enabled หรือ disabled ใน virtual machines ของคุณ รวมถึง Kerberos tickets, software updates, program licenses, careful order of execution ของ cron jobs ระหว่าง hosts ต่างๆ และอื่นๆ
เพื่อสิ่งนี้ คุณสามารถ fine-tune NTP configuration ของคุณ - start/stop NTP service, เลือก NTP server, เลือก port number และอื่นๆ ขึ้นอยู่กับความต้องการของคุณ คุณอาจต้องเปลี่ยนเหล่านี้ แม้ส่วนใหญ่จะได้ประโยชน์จาก default options
Enable SSH to your ESXi server
นี่อาจเป็นเคล็ดลับที่สำคัญที่สุด น่าเสียดาย ไม่มี screenshots เพราะผมทำบน actual machine แม้ว่าในทฤษฎี ผมควรติดตั้ง ESXi จาก ISO เป็น guest บน ESXi อีกตัวแล้วแชร์ screenshots แต่คุณจะเชื่อผม และยังมี link ไป tutorial คล้ายกัน พร้อม images และอื่นๆ ด้านล่าง
ESXi มี two virtual consoles (typical Linux มีเจ็ด) ซึ่งคุณสามารถ access และ toggle ด้วยการใช้ Alt + F1/2 combo VC2 เป็น pseudo-GUI management console VC1 เป็น sort of tailed server log ไม่มี command line เห็นได้
อย่างไรก็ตาม หากคุณพิมพ์ unsupported ในหน้าต่างนี้ คุณจะได้ command line นี่คือขั้นตอนแรก ต่อไป เราต้อง enable SSH นี่ทำได้ต่างจาก typical Linux boxes เล็กน้อย
เปิด /etc/inetd.conf ใน text editor (vi) ค้นหาบรรทัด ssh และ uncomment มัน Save ไฟล์และออก ตอนนี้ คุณต้อง restart inetd เพื่อให้มัน reread configuration และ startup พร้อม SSH enabled
เพื่อ restart inetd ให้ locate process ใน process table:
ps -a | grep inetd
หลังจากคุณ locate inetd process ID (PID) ให้ restart มัน:
kill -1 <pid>
Note: นี่คือ unsupported feature โปรดปรึกษา IT support, vendor, ใครก็ตาม หากคุณอยากทำเพราะคุณอาจทำลาย warranty หรืออย่างนั้นโดยไม่ได้ตั้งใจ โดยทั่วไป เนื่องจากคุณใช้ free และ unsupported product นี่ไม่ควรเป็นปัญหา
More reading
บาง tips ด้านล่าง applicable เฉพาะ ESX แต่ควรมีประโยชน์ดีเช่นกัน นอกจากนี้ บางงานอ้างอิง older versions ของ VMware products แต่คุณควรอ่านดีๆ ยาวๆ
vm-help.com (best, most comprehensive source I know)
How to access the VMware ESXi hidden console (great tutorial, screenshots)
VMware Remote Command Line Reference Guide (direct link, PDF)
Guide to VMware ESX Server 3
How to administer VMware ESX Server
Conclusion
สำหรับ all practical purposes คู่มือนี้ไม่จะทำให้คุณกลายเป็น VMware guru แต่มันอาจส่องสว่างบาง less obvious options และ features ที่ซ่อนอยู่ใน GUI รวมถึง performance tweaks และ virtual machine management ที่ streamlined แม้ graphical use เสนอความสะดวก มันอาจนำไปสู่ productivity loss ในระยะยาว แต่แล้วคุณมี command-line console และ SSH ชดเชยได้
วันนี้ คุณได้เรียนรู้ tips ที่มีค่าหลายอย่าง ที่ควร kickstart การทำงานของคุณกับ VMware virtualization products ในอนาคต เราจะพูดถึง common scenarios และ usage models อื่นๆ ก่อนที่จะขุดลึกเข้า scripting และ command-line only mode
Enjoy your virtualization.
Cheers.