การรัน 100 เครื่องเสมือนบนเซิร์ฟเวอร์โฮสต์ VMWare เดียว


24

ฉันใช้ VMWare มาหลายปีใช้เซิร์ฟเวอร์การผลิตจำนวนมากที่มีปัญหาน้อยมาก แต่ฉันไม่เคยลองโฮสติ้ง VM มากกว่า 20 ตัวบนโฮสต์ฟิสิคัลเดียว นี่คือความคิด:

  1. Windows XP รุ่นที่ถูกเปิดใช้งานสามารถใช้งานได้กับ RAM ขนาด 512MB และพื้นที่ดิสก์ 4GB
  2. $ 5,000 ทำให้ฉันเป็นเครื่องคลาสเซิร์ฟเวอร์ 8-core พร้อม RAM 64GB และกระจก SAS สี่อัน
  3. ตั้งแต่ 100 VMs ที่กล่าวถึงข้างต้นพอดีกับเซิร์ฟเวอร์นี้ราคาฮาร์ดแวร์ของฉันเพียง $ 50 ต่อ VM ซึ่งดีมาก (ราคาถูกกว่าการเช่า VM ที่ GoDaddy หรือร้านค้าโฮสติ้งอื่น ๆ )

ฉันต้องการดูว่าใครสามารถบรรลุความสามารถในการปรับขนาดได้ด้วย VMWare หรือไม่? ฉันได้ทำการทดสอบสองสามครั้งและชนเข้ากับปัญหาแปลก ๆ ประสิทธิภาพของ VM เริ่มลดลงอย่างมากเมื่อคุณเริ่มต้น 20 VMs ในเวลาเดียวกันเซิร์ฟเวอร์โฮสต์ไม่แสดงคอขวดของทรัพยากรใด ๆ (ดิสก์ไม่ได้ใช้งาน 99%, การใช้งาน CPU ต่ำกว่า 15% และมี RAM ว่างมากมาย)

ฉันจะขอบคุณถ้าคุณสามารถแบ่งปันเรื่องราวความสำเร็จของคุณเกี่ยวกับการปรับขนาด VMWare หรือเทคโนโลยีการจำลองเสมือนอื่น ๆ !


4
คุณวางแผนที่จะใช้ผลิตภัณฑ์ VMware ใดอยู่ ESX? ESXi? Server?
wzzrd

2
คุณสามารถรัน XP ด้วย 256 ได้โดยไม่ยากโดยเฉพาะอย่างยิ่งถ้ามันเป็นงานที่เบา ไมโครซอฟท์ต้อง 64 แต่ 128 "เพียงพอ" technet.microsoft.com/en-us/library/bb457057.aspx
แมตต์ Rogish

1
คุณซื้อเซิร์ฟเวอร์จากที่ไหน ฉันต้องการหนึ่ง :)
วอร์เรน

1
5,000 USD เท่านั้นคุณขายสองอันได้ไหม :)
Taras Chuhay

คุณมี "จำนวน CPU นี้" ในเซิร์ฟเวอร์การโฮสต์ของคุณและ VM แต่ละเครื่องจะได้รับส่วนแบ่ง บวกกับ esxi จะมีค่าใช้จ่าย: "สลับไปที่ VM นี้จัดการมันสลับไปที่ ฯลฯ " หลายครั้งต่อวินาที หมายความว่าแต่ละ VM จะได้รับเพียงเศษเสี้ยวของ cpu ทั้งหมด ยิ่ง VMs มากเท่าไหร่คุณก็ยิ่งแบ่งซีพียูของคุณมากขึ้นเท่านั้น (และยิ่งคุณเพิ่มซีพียูมากขึ้นด้วยซึ่งหมายความว่าแทนที่จะมี 100 vms จริง ๆ แล้วคุณมีมากกว่านั้น)
Olivier Dulac

คำตอบ:


15

ใช่คุณสามารถ. แม้สำหรับปริมาณงาน Windows 2003 บางอย่างเพียง 384MiB ก็พอเพียงดังนั้น 512MiB จึงเป็นค่าประมาณที่ดีทีเดียวไม่ว่าจะสูง แรมไม่ควรมีปัญหาไม่ควรใช้ CPU

100 VMs เป็นบิตที่สูงชัน แต่สามารถทำได้โดยเฉพาะอย่างยิ่งหาก VMs จะไม่ยุ่งมาก เราสามารถรันเซิร์ฟเวอร์ 60 เครื่อง (Windows 2003 และ RHEL) ได้อย่างง่ายดายบนเซิร์ฟเวอร์ ESX เครื่องเดียว

สมมติว่าคุณกำลังพูดถึง VMware ESX คุณควรทราบด้วยว่าสามารถ overcommit หน่วยความจำได้ VM แทบจะไม่เคยใช้การปันส่วนหน่วยความจำที่ได้รับการแต่งตั้งอย่างสมบูรณ์ดังนั้น ESX จึงสามารถส่งมอบ RAM มากกว่าจำนวนที่มีให้กับ VM และเรียกใช้ VM ได้มากกว่าที่เป็น 'ทางการ' มี RAM อยู่

เป็นไปได้มากว่า bottlenech ของคุณจะไม่ใช่ CPU หรือ RAM แต่เป็น IO VMware มี IOPS จำนวนมากในด้านการตลาดของพวกเขา แต่เมื่อผลักดันออกมาความขัดแย้งในการจอง SCSI และแบนด์วิดธ์ที่ จำกัด จะหยุดคุณก่อนที่คุณจะเข้าใกล้ IOPS VMware

อย่างไรก็ตามเราไม่พบว่าประสิทธิภาพของ VM ลดลง 20 คุณใช้ ESX เวอร์ชันใด


ขอบคุณ Wzzrd! ขณะนี้ฉันกำลังใช้ VMWare Server 2.0 แต่วางแผนที่จะลอง ESX ในไม่ช้า ฉันเฝ้าดู I / O ในทุก ๆ โฮสต์อาเรย์อย่างระมัดระวังและวิธีเดียวที่ฉันสามารถเพิ่มได้ก็คือการรีบูตเครื่องหลายครั้งพร้อมกัน เมื่อแขกทำงานเบาหรือไม่ได้ใช้งานดิสก์โฮสต์จะไม่ได้ใช้งาน 99% ดังนั้นฉันสงสัยว่าอย่างอื่นที่ไม่ใช่ CPU และ IO ทำให้ VMs ทั้งหมดช้าลง โดยวิธีการที่พวกเขาชะลอตัวลงอย่างมาก - ใช้เวลา 20 วินาทีในการเปิดเมนู Start และถ้าฉันเรียกใช้ตัวจัดการงานภายใน VM ผู้จัดการงานจะใช้ CPU 90% - แปลก!
Dennis Kashkin

2
นั่นเป็นเพราะคุณใช้ VMware Server VMware Server เป็นแพลตฟอร์มการจำลองเสมือนที่ด้านบนของแพลตฟอร์มอื่น (Linux ซึ่งส่วนใหญ่มักจะ) ในขณะที่ ESX เป็นแพลตฟอร์มการจำลองเสมือนแบบโลหะเปลือย แตกต่างกันมากทั้งในแนวคิดเช่นเดียวกับวิธีการที่มันทำงาน
wzzrd

น่าเศร้าที่วันแพทช์มาพร้อมกับ 100 vm คุณจะต้องรีบูทพรมจำนวนมากในเวลาเดียวกัน;) และการแพตช์เองนั้นยาก ระวัง Service Pack - นั่นคือเมื่อความเจ็บปวดเริ่มต้นขึ้นจริง ๆ )
TomTom

หยุดหลอกตัวเองเกี่ยวกับการคิดโลหะเปลือยเป็นสิ่งที่พิเศษ ESXi เป็นเพียง Linux ที่ถูกปล้น ใช่ลีนุกซ์
dresende

2
@dresende ไม่มันไม่ใช่ เชื่อฉัน.
wzzrd

11

ปัญหาสำคัญอย่างหนึ่งที่มีสภาพแวดล้อมขนาดใหญ่เช่นนั้นคือการป้องกันภัยพิบัติและการปกป้องข้อมูล ถ้าเซิร์ฟเวอร์ตาย 100 VMs ก็จะตายด้วย

คุณต้องวางแผนสำหรับความล้มเหลวบางอย่างของ VMs และการวางแผนสำหรับการจัดการ "Extra-VM" บางประเภทที่จะปกป้อง VM ของคุณในกรณีที่เกิดความล้มเหลว แน่นอนความซ้ำซ้อนเช่นนี้หมายถึงต้นทุนที่เพิ่มขึ้นซึ่งอาจเป็นเหตุผลว่าทำไมหลายครั้งที่การจ่ายเงินไม่ได้รับการอนุมัติจนกว่าจะได้เห็นประโยชน์ในทางปฏิบัติ

โปรดจำไว้ว่าโฮสต์ VM เป็นเพียงหนึ่งในหลายจุดที่ล้มเหลว:

  • เครือข่าย - จะเกิดอะไรขึ้นถ้าการ์ดเครือข่ายของโฮสต์ VM หยุดทำงาน
  • หน่วยความจำ - จะเกิดอะไรขึ้นถ้าหน่วยความจำของโฮสต์ VM เสีย?
  • CPU - ถ้าแกนประมวลผลเสียชีวิตเกิดอะไรขึ้นกับ VMs?
  • กำลังไฟ - มีสายไฟเพียงเส้นเดียวหรือสองเส้น?
  • พอร์ตการจัดการ - สมมุติว่าคุณไม่สามารถไปที่การจัดการโฮสต์ของ VM ได้?

นี่เป็นเพียงไม่กี่: โครงสร้างพื้นฐาน VM ขนาดใหญ่ต้องการความระมัดระวังในการป้องกันการสูญเสียข้อมูลและการป้องกันการสูญเสีย VM


2
ฟังดาวิด คุณจะต้องการการกำหนดค่า N + 1 ซึ่งหมายความว่าคุณต้องการเครื่องว่างที่ว่างอย่างน้อยหนึ่งเครื่องที่สามารถดูดซับปริมาณงานทั้งหมดของเครื่องอื่นได้หากล้มเหลว คำแนะนำของฉันคือคลัสเตอร์สองเซิร์ฟเวอร์ที่กระจายโหลดอย่างสม่ำเสมอ แต่สามารถจัดการปริมาณงานทั้งหมดได้อย่างอิสระหากเครื่องหนึ่งล้มเหลว
Jason Pearce

4

ไม่มีคำแถลงเกี่ยวกับความมีชีวิตของสิ่งนี้ในการผลิต แต่มีการสาธิต NetApp ที่น่าสนใจมากซึ่งให้เดสก์ท็อป 5440 XP บนโฮสต์ ESX 32 โฮสต์ (นั่นคือ 170 ต่อโฮสต์) ในเวลาประมาณ 30 นาทีโดยใช้พื้นที่ดิสก์น้อยมาก ภาพ

http://www.youtube.com/watch?v=ekoiJX8ye38

ฉันเดาว่าข้อ จำกัด ของคุณมาจากระบบย่อยของดิสก์ ดูเหมือนว่าคุณจะคำนึงถึงการใช้งานหน่วยความจำและ CPU


3

ไม่เคยทำ - แต่ฉันสัญญาว่าคุณจะใช้จ่ายมากกว่าในสตอเรจเพื่อรับ IOP เพียงพอที่จะรองรับ VM จำนวนมากที่คุณจะใช้กับฮาร์ดแวร์เซิร์ฟเวอร์ คุณจะต้องใช้ IOP จำนวนมากหากทั้งหมด 100 รายการนั้นทำงานในเวลาเดียวกัน ไม่ใช่เสียงที่เป็นลบ แต่คุณคิดว่าคุณกำลังใส่ไข่จำนวนมากในตะกร้าใบเดียว (ฟังดูเหมือนว่าคุณจะอยู่หลังเซิร์ฟเวอร์เดียวหรือไม่?)


2
แน่นอนฉันจะสร้าง "ตะกร้า" หลายชุดและตั้งค่าการสำรองข้อมูลอัตโนมัติบางอย่าง ปัญหาคอขวดของ I / O สามารถแก้ไขได้อย่างง่ายดายด้วยไดรฟ์ SSD ในปัจจุบัน ฉันใช้ 160GB Intel MLC ไดรฟ์ในการผลิตและพวกเขาน่าตื่นเต้น โดยทั่วไปคุณจะได้รับประสิทธิภาพ I / O แบบสุ่มที่ดีกว่า 5 เท่าของไดรฟ์ SAS ด้านบน (ในการกำหนดค่า RAID แบบง่าย)
เดนนิส Kashkin

1

ฉันจะกังวลมากที่สุดเกี่ยวกับการช่วงชิงของ CPU ด้วย 100 VM บนโฮสต์เดียว คุณต้องจำไว้ว่าตัวประมวลผลไม่ได้จำลองเสมือนดังนั้นแต่ละเครื่องจะต้องรอการเข้าถึงซีพียู คุณสามารถเริ่มเห็นความขัดแย้งโดยดูที่ ESXTOP ฉันได้รับการบอกอะไรมากกว่า 5 ในฟิลด์% RDY นั้นแย่มากโดย VMWare Engineers

จากประสบการณ์ของฉันฉันได้เห็นเซิร์ฟเวอร์ประมาณ 30 - 40 เครื่องที่ทำงานบนโฮสต์เดียว (ไม่ได้ทำมากเกินไป)


1

ฉันมี 10 Hosts บน VMWare Server 1.0.6 (ภายใต้ Windows 2003) และมันจะพบปัญหา IO เป็นประจำ (และหากการสร้างในเวลากลางคืนซ้อนทับกับสิ่งอื่นใดทั้งหมดพวกเขาก็จะมีปัญหา) หลังจากอัปเกรดจาก Windows เป็น ESXi U3 เราพบว่าปัญหาด้านประสิทธิภาพของเราหายไป (การสร้างทุกคืนไม่ล้มเหลวอีกต่อไป)

นอกจากนี้โปรดทราบว่าในขณะที่ SSD มีอัตรา IO สูงกว่าสื่อประเภทสปินนิ่งมีบางกรณีที่ไม่ได้เก็บไว้เช่นรูปแบบการเขียนบางประเภท (การเขียนขนาดเล็กจำนวนมากที่กระจัดกระจายไปทั่วไดรฟ์จะทำให้ประสิทธิภาพการทำงานลดลง แคชบัฟเฟอร์การเขียนสมาร์ทที่ทำงานได้ดีในการเขียนกระจาย)

ฉันขอแนะนำให้ตรวจสอบ / ทดสอบว่ามีไฟล์ SWAP ในไดรฟ์อื่นหากพบปัญหา


1

หากคุณกำลังจะทำเช่นนั้นฉันขอแนะนำให้คุณใช้โปรเซสเซอร์ซีรีส์ 'Nehalem' Xeon 55xx ใหม่ของ Intel - พวกเขาออกแบบมาเพื่อใช้งาน VM และแบนด์วิดท์หน่วยความจำเพิ่มเติมของพวกเขาจะช่วยอย่างมากเช่นกัน โอ้และถ้าคุณสามารถใช้ดิสก์ที่มีขนาดเล็กกว่าได้น้อยกว่าดิสก์ตัวใหญ่ ๆ นั่นจะช่วยได้มาก หากคุณสามารถใช้ ESX v4 มากกว่า 3.5U4 ได้เช่นกัน


1

ฉันมี 20 VMware XP ที่รันด้วย 512M of ram แต่ละเครื่องบน RAM ที่มี 16G น้อยกว่านี้และพวกเขาแลกเปลี่ยนลงบนดิสก์และที่ให้คอขวด สิ่งเหล่านี้เป็น XP VMs ที่ใช้งานอยู่เสมอ

VMware และคุณสมบัติ OverCommit จะช่วยให้คุณสามารถส่ง ram ไปยังเครื่อง XP แต่ละเครื่องได้มากขึ้น เครื่องที่คล้ายกันจะแชร์หน้าเดียวกันเพื่อลดการเขียนดิสก์ มันเป็นสิ่งที่ฉันต้องการพิจารณาในการตั้งค่าของเราเพื่อลองเพิ่มเครื่องมากขึ้นเนื่องจาก XP VM ของเรากำลังทำข้อมูลบนดิสก์อย่างต่อเนื่อง 10-20meg


1

เราไม่สามารถบรรลุ 100 ผู้มีความสุขบนเซิร์ฟเวอร์ VMWare แต่จากนั้นพบว่า ESXi ทำงานได้ดีขึ้นมาก ดังนั้นจึงปรากฏว่า 100 XP vms ไม่ใช่ปัญหาหากคุณใช้ ESXi และเซิร์ฟเวอร์ที่เหมาะสม (ดิสก์มิรเรอร์ไม่กี่ตัวเพื่อแพร่กระจาย I / O, I7 คู่ของสองชิปและ RAM 64GB) ไม่มีความล่าช้าที่มองเห็นได้สำหรับผู้ใช้ปลายทางและทรัพยากรของโฮสต์จะไม่ได้รับการขยายสูงสุด (อันที่ร้อนแรงที่สุดคือ CPU แต่โดยทั่วไปจะว่างอย่างน้อย 70%)

PS คำถามนี้ถูกโพสต์โดยฉันย้อนกลับไปเมื่อเรากำลังดิ้นรนกับเซิร์ฟเวอร์ VMWare


0

ครั้งล่าสุดที่ฉันตรวจสอบ VMware ไม่แนะนำอีกต่อไปว่า 4 VM ต่อการประมวลผลหลักสำหรับ ESX โดยสมมติหนึ่ง vCPU ต่อ VM

สิ่งนี้ชี้ให้เห็นว่าค่าโสหุ้ยการจัดการกลายเป็นปัจจัย

ฉันสนใจมากที่จะดูว่าคุณสามารถบรรลุปัจจัย 4x ในกล่อง 8 แกนจริงหรือไม่


1
นั่นคือ ESX 3.5U2 ก่อนแล้ว - ค่าสูงสุดของเอกสารสำหรับการอัปเดต 2 บอกว่า 8 สำหรับวัตถุประสงค์ทั่วไป แต่เพิ่มเป็น 11 สำหรับปริมาณงาน VDI ฉันค่อนข้างแน่ใจว่าฉันเห็นบางสิ่งที่ฉันไม่สามารถหาได้ซึ่งเพิ่มคำแนะนำ VDI เป็น 19 ด้วยอัปเดต 3 หรือ 4 สำหรับ vSphere ที่ จำกัด ในขณะนี้คือ 20 ค้นหา VMware ESX Configuration สูงสุดสำหรับเอกสารอย่างเป็นทางการจาก VMware
Helvick

VMs ของฉันไม่ได้ใช้งานส่วนใหญ่ ผู้คนเชื่อมต่อกันวันละสองสามครั้งเพื่อเรียกใช้ซอฟต์แวร์ที่มีน้ำหนักเบา ฉันยืนยันว่า VM เหล่านี้สร้างโอเวอร์เฮดของ CPU ที่เล็กมากบนโฮสต์เมื่อไม่ได้ใช้งาน (20 VMs เพิ่มการใช้ประโยชน์ของ CPU ได้ถึง 9% ตามระบบ dual quadcore) คุณจะสามารถจำได้ว่าข้อ จำกัด ของ VM สี่ตัวต่อซีพียูนั้นถูกต้องหรือไม่? พวกเขากำลังคิดเกี่ยวกับเว็บเซิร์ฟเวอร์หรืออินสแตนซ์ของระบบปฏิบัติการเดสก์ท็อปอยู่หรือไม่?
เดนนิส Kashkin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.