Home > Virtualization > Software Architecture of VMwave ESXi

Software Architecture of VMwave ESXi

esx_Architect

ส่วนประกอบของ VMware ESXi มีดังต่อไปนี้

VMkernel – อยู่ใน Layer ชั้นล่างสุดของระบบ มีหน้าที่และฟังก์ชันการทำงานคล้ายกับระบบปฎิบัติการ เช่น การสร้าง Process, การควบคุม Process, การส่ง Signal, การจัดการระบบ file system, การสร้าง Thread     ถูกออกแบบมาเพื่อให้สามารถรองรับการทำงานของ Virtual Machine หลายเครื่องพร้อมกันได้ ด้วยฟังก์ชันการทำงานต่อไปนี้

  • Resource scheduling
  • I/O stacks
  • Device driver

VMkernel จะคอบควบคุมการทำงานของ Hardware device บนเครื่อง Server และคอยควบคุมการจัดแบ่ง resource ต่างๆให้กับ Guest VM แต่ละตัว

Direct Console User Interface (DCUI) – เป็น interface ที่ใช้ในการ configure และจัดการตั้งค่าพื้นฐานต่างๆที่สำคัญของระบบในเครื่อง server สามารถติดต่อกับ DCUI ได้โดย console ของเครื่อง server เท่านั้นไม่สามารถทำกำหนดค่าผ่าน Network ได้ ตัว DCUI นั้นจะเป็นตัวกำหนดค่าต่างๆและคอยแก้ใขข้อผิดพลาดในระบบ เช่น

  • กำหนด administrative password
  • กำหนดค่า Network ต่างๆ ถ้าหากไม่สามารถกำหนดอัตโนมัติด้วย DHCP ได้
  • จัดเตรียมการทดสอบระบบ Network อย่างง่ายไว้ให้
  • ใช้สำหรับดู Log file
  • ใช้ Restart server
  • ใช้ Restore ค่า default ของระบบ

Virtual Machine Monitor (VMM) – เป็น process ที่จำลองพื้นที่และสภาพแวดล้อมการทำงานให้แต่ละ Guest OS โดยมี helper process ชื่อ VMX เป็นของ guest OS แต่ละตัว ดังนั้นในแต่ละ Guest OS จะต้องมี VMM และ VMX คู่กันเสมอ

Common Information Model (CIM) – เป็น Interface ที่ใช้ในการจัดการในระดับ hardware กับเครื่อง guest OS ผ่าน remote application ซึ่งจะมีชุดของ API ที่เป็นตัวรองรับอยู่ CIM นั้นเป็น Open standard ในการแสดงและจัดการ resource และ hardware ของเครื่อง ซึ่ง CIM Framework มีส่วนประกอบคือ

  • CIM provider หรือเรียกว่า  CIM object manager เป็นส่วนที่จัดเตรียมการเข้าถึง device driver และ hardware บนเครื่อง ผู้ผลิต hardware นั้นสามารถเขียนตัว provider ที่จะใช้จัดการกับ hardware นั้นขึ้นมาเองได้  ESXi ได้สร้างมาตรฐาน CMPI ที่ยอมให้นักพัฒนาสามารถเขียน provider ตัวใหม่และสามารถนำมาต่อใช้งานได้ แต่จะต้องถูกรวมเข้าไปกับ system image เลย ไม่สามารถนำมาติดตั้งในขณะรันได้
  • CIM broker ทำหน้าที่คอบนำข้อมูลจากทุก CIM providers และแสดงสู่โลกภายนอก ผ่าน API มาตรฐาน เช่น WS-MAN

esx-arch1

Other User World Processes – process ที่ซึ่งถูกเรียกใช้โดย VMware เพื่อย้ายความสามารถในการควบคุมที่อยู่บนเครื่อง server ไปยัง user world

  • hostd เป็น process ที่จะเตรียม programmatic interface ให้กับ VMkernel และถูกใช้ด้วย VI Client ได้เหมือนกับ VI API    ซึ่ง hostd จะทำหน้าที่ยืนยันผู้ใช้แต่ละคน พร้อมกับเก็บสิทธิการเข้าถึง ว่าผู้ใช้คนนั้นสามารถจัดการอะไรบนระบบได้บ้าง
  • vpxa เป็น process ที่จะสามารถติดต่อไปยัง VirtualCenter และจะรันโปรแกรมพิเศษที่เรียกว่า vpxuser ที่จะเป็นตัวกลางระหว่าง hostd และ VirtualCenter
  • syslog เป็น daemon process ที่ทำงานบน user world เช่นกัน มีหน้าที่เก็บ log เมื่อเปิดให้ระบบเก็บ remote logging

Open Network Ports – มี Port จำนวนหนึ่งที่ถูกเปิดอยู่ตลอดเวลาบน ESXi ซึ่งเป็น Port ที่สำคัญในการทำงานได้แก่

  • 80 – เป็น server port  ที่จะแสดง static webpage  เพื่อใช้สำหรับการ browse มาที่ server และ port นี้จะถูก redirect ไปยัง port 443 เพื่อให้ client ติดต่อกับ server ผ่าน SSL
  • 443 – port นี้มีไว้สำหรับ client ติดต่อกับ server ผ่าน SSL เพื่อเรียกใช้ service ต่างๆ ได้แก่ VMware Virtual Infrastructure API(VI API)ที่ซึ่งสามารถเข้าใช้งาน RCLIs, VI client, Virtual center server และ SDK
  • 427 – port นี้มีไว้เพื่อเข้าใช้งาน service location  protocol ซึ่งเป็น protocol ที่ใช้ค้นหา VI API
  • 5989 – port นี้เปิดไว้สำหรับ CIM server ที่จะเป็น interface สำหรับ toolที่ใช้ในการจัดการ
  • 902 – port นี้เปิดไว้สำหรับ support VIM API version ก่อนหน้า

File System – VMkernel จะเก็บข้อมูลของ configuration files, log files, staged patches ไว้เป็นแบบ file  ที่อยู่บน memory และเพื่อให้ง่ายต่อการใช้งาน โครงสร้างของ file system จึงออกแบบมาให้เหมือนกับที่ใช้บนเครื่อง server ของ ESX เช่น

  • /etc/vmware สำหรับเก็บ ESXi configuration files
  • /var/log/vmware สำหรับเก็บ log files
  • /tmp สำหรับเก็บ staged patches

ตัว file system นี้จะเป็นอิสระจาก VMware VMFS file system ที่เป็นตัวเก็บ Virtual Machine เนื่องจาก VMFS จะถูกเก็บลงบน Disk บน host หรือบน shared storage

สามารถใช้ remote command line เพื่อจัดการกับ file system ทั้งที่อยู่บน memory และ VMware VMFS file system ได้ โดยผ่านการใช้ HTTPS get และ put

นอกจากนี้ข้อมูลที่อยู่ใน file system บน memory นั้นจะไม่อยู่อย่างถาวร เมื่อเครื่องถูกปิด ข้อมูลทั้งหมดก็จะหายไป ดังนั้น ESXi จึงมีความสามารถที่จะสั่งงานให้เก็บข้อมูลของ log ลงบน Disk ได้ผ่านทาง remote syslog server

User and Groups – User และ Group ถูกกำหนดไว้บน  ESXi server ซึ่งแต่ละคนจะสามารถเข้าสู้ระบบได้ผ่านทาง remote command line หรือ VIM API

Group นั้นประกอบจาก User หลายคน เหมือนกับระบบปฏิบัติการทั่วไป จะใช้ Group เช่น ต้องการกำหนเสิทธิให้กับ User หลายๆคนพร้อมกันในครั้งเดียว

Administrative privileges สามารถกำหนด User แต่ละคนว่าจะอยู่ที่ Group ไหนได้ ข้อมูลของ User และ Group นั้น ถูกเก็บไว้ที่ /etc/passwd, /eyc.shadow และ /etc/group และเหมือนกับระบบปฏิบัติการ Linux และใช้ฟังก์ชันมาตรฐาน crypt ในการเข้ารหัส

User Worlds – คำว่า  User Worlds นั้นหมายถึง process ที่ทำงานอยู่บน VMkernel แต่สิ่งแวดล้อมของระบบที่ User World ทำงานด้วยนั้นมีจำกัดเมื่อเทียบกับระบบปฎิบัติการทั่วไปอย่าง Linux เช่น

  • จำนวนของ Signal ที่มีให้นั้นจำกัด
  • API ของระบบนั้นเป็นเพียง subset ของ POSIX
  • /proc file system นั้นจำกัดไว้มาก
  • Swap file มีเพียงตัวเดียวให้ใช้ร่วมกันระหว่างหลาย User world process

อ้างอิงจาก

http://www.vmware.com/files/pdf/vmware_esxi_architecture_wp.pdf

Categories: Virtualization Tags:
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: