การ จำกัด การใช้งานเซิร์ฟเวอร์ NTP ในเครื่องเสมือนคืออะไร


15

ฉันต้องการตั้งค่าเซิร์ฟเวอร์เวลา Stratum 2 หลายแห่งในเครือข่ายท้องถิ่นของฉัน เครื่องเสมือนจะเป็นวิธีที่ถูกกว่าการซื้อเซิร์ฟเวอร์ 1U สามตัว ข้อ จำกัด อะไรที่จะทำให้เกิดขึ้น นั่นคือความถูกต้องในระดับใดที่จะได้รับผลกระทบในทางลบ?

นอกจากนี้สัญชาตญาณของฉันคือเซิร์ฟเวอร์เวลาท้องถิ่นเหล่านี้ควรอยู่ในเครื่องทางกายภาพที่แตกต่างกันเพื่อลดความผิดปกติของฮาร์ดแวร์ สัญชาตญาณนี้ถูกต้องหรือไม่?

แก้ไข ผมควรจะพูดว่าโดย "เครื่องเสมือน" ผมไม่ได้โดยเฉพาะหมายถึงVMware แต่ฉันหมายถึงแนวคิดทั่วไปของอินสแตนซ์เสมือนจริง

คำตอบ:


19

ความจริงง่ายๆคือความถูกต้องของนาฬิกาภายใน VM ยังคงไม่ดีนัก นี่มาจากบางจุด แต่สิ่งที่นักฆ่าก็คือเวลาล่องลอยไม่คงที่ ปัจจัยดริฟท์จะเปลี่ยนไปตามช่วงเวลา NTP เป็นโปรโตคอลที่มีการชดเชยสัญญาณนาฬิกาอยู่ภายใน แต่มันถูกออกแบบด้วยปัจจัยดริฟท์แบบคงที่ที่สร้างขึ้นมาตัวอย่างเช่นหากเครื่องทางกายภาพสูญเสีย 12 วินาทีทุก 30 วัน NTP สามารถชดเชยสิ่งนั้นได้และทำได้ดีมาก แต่หากเครื่องนั้นสูญเสียที่ใดก็ได้จาก 4 ถึง 70 วินาทีทุก ๆ 30 วัน NTP จะไม่สามารถติดตามระดับการเปลี่ยนแปลงนั้นได้

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

NTP สำหรับเครือข่ายท้องถิ่นเป็นโปรโตคอลผลกระทบที่ค่อนข้างต่ำพร้อมด้วยหน่วยความจำขนาดเล็กมากและสามารถแบกกลับมาอย่างมีความสุขบนเซิร์ฟเวอร์โครงสร้างพื้นฐานเครือข่ายอื่น ๆ ของคุณเช่น DNS และเซิร์ฟเวอร์ DHCP ของคุณ เราเตอร์บางตัวยังสามารถให้บริการการทำงานของ NTP ดังนั้นคุณอาจต้องการตรวจสอบสิ่งนั้น

เป็นการดีที่คุณต้องการเซิร์ฟเวอร์แยกกันสองแห่งในตำแหน่งที่ตั้งที่แยกกันซึ่งแต่ละครั้งจะซิงค์กับเซิร์ฟเวอร์ stratum ที่สูงกว่าชุดอื่น มันจะเป็นความคิดที่ดีมากสำหรับเซิร์ฟเวอร์เวลาทั้งสองที่ได้รับการกำหนดค่าให้ใช้เซิร์ฟเวอร์อื่นเป็น 'เพียร์' ซึ่งจะลดผลกระทบต่อการบริการเวลาหากหนึ่งในแหล่งข้อมูลเวลาอัปสตรีมผิดพลาด จะมีการเปลี่ยนแปลงระดับชั้น แต่อย่างน้อยก็จะไม่รายงานว่าไม่ซิงค์กัน และสุดท้ายนี้ขอให้ผู้ให้บริการต้นน้ำของคุณพึงพอใจและกำหนดค่าเซิร์ฟเวอร์ของคุณให้ใช้เวลานานมากในการโพลเมื่อโพลได้รับการยอมรับแล้ว นี่คือพารามิเตอร์ 'maxpoll' ในบรรทัด 'เซิร์ฟเวอร์' และเป็นกำลังสองวินาทีในระหว่างการพยายามซิงค์

หากคุณต้องใช้ VMs อย่างนี้ฉันจะตั้งค่าเซิร์ฟเวอร์ NTP ไม่น้อยกว่าสามตัว แต่ละรายการจะต้องอยู่บนโฮสต์ที่แตกต่างกันและหากเป็นไปได้ในศูนย์ข้อมูลที่แตกต่างกัน เช่นเดียวกับสิ่งที่ฉันแนะนำพวกเขาต้องการแหล่งเวลาที่แตกต่างกันและควรมองดูซึ่งกันและกัน จากนั้นกำหนดค่าไคลเอนต์ NTP ของคุณทั้งหมดเพื่อใช้ทั้งสามเป็นแหล่งที่มาของผู้ปกครอง ตรวจสอบให้แน่ใจว่าค่า maxpoll ของคุณต่ำพอที่จะไม่ไปนานกว่าหนึ่งชั่วโมงครึ่งระหว่างแพ็กเก็ตซิงค์นอกเครือข่ายและ 30 นาทีบนเครือข่าย โอกาสที่ดีอย่างน้อยหนึ่งในสามจะซิงค์ในเวลาใดก็ตาม สำหรับลูกค้าที่สามารถพูดคุยกับโฮสต์ได้ครั้งเดียวพวกเขาจะต้องทนกับเหตุการณ์ที่เกิดขึ้นเป็นครั้งคราว โดยรวมแล้วคุณภาพของเวลาในสถานการณ์นี้จะไม่แม่นยำอย่างที่ควรจะเป็นกับฟิสิคัลเซิร์ฟเวอร์

ถ้าฉันต้องไปงาน ball-park ฉันจะบอกว่าเวลาฉันทามติของคุณในสภาพแวดล้อมของ VM-pure อาจจะอยู่ภายใน 30 ถึง 100ms ของจริง ในสภาพแวดล้อมทางกายภาพล้วนๆเวลาที่ฉันทามติของคุณอาจจะอยู่ในระยะ 10 มิลลิวินาทีเมื่อเซิร์ฟเวอร์เวลาใช้เวลานานพอที่จะจัดการ


1
ฉันค่อนข้างแน่ใจว่าฉันต้องการอย่างน้อยสามไม่ใช่แค่เซิร์ฟเวอร์ NTP เฉพาะที่สองตัว ลูกค้าจะแก้ความกำกวมระหว่างสองคนได้อย่างไร
James A. Rosen

คุณต้องการอย่างน้อยสี่ด้วยเหตุผลบางอย่างที่ลึกลับ ที่กล่าวว่าเรามีเซิร์ฟเวอร์ภายในสองตัวที่ซิงค์กับเซิร์ฟเวอร์ภายนอกครึ่งโหล (และนาฬิกาในเครื่องของพวกเขาเป็นการสำรองข้อมูล) ทำงานได้ดีพอสำหรับเรา
James

James A Rosen - นั่นคือความสุขของการกำหนดค่าเพียร์กลุ่ม ตราบใดที่อย่างน้อยหนึ่งสมาชิกของกลุ่มเพียร์มีการเชื่อมต่อภายนอกและอยู่ในซิงค์กลุ่มเพียร์ทั้งหมดจะอยู่ในการซิงค์ ลูกค้าอาจลดระดับสตราตัม แต่อย่างน้อยพวกเขาก็จะไม่ซิงค์กัน มีสามคนในกลุ่มเพียร์? ไม่มีปัญหา.
sysadmin1138

1
เกี่ยวกับจำนวนของเซิร์ฟเวอร์ที่คุณต้องการก็คือทั้งหมดที่นี่: support.ntp.org หากคุณทำรายการเพียงคำถามเดียวจะไม่มีคำถามใดที่จะถือว่าเป็น "ถูกต้อง" หรือ "ผิด" [... ] ด้วยสองมันเป็นไปไม่ได้ที่จะบอกว่าอันไหนดีกว่า [... ] นี่คือการกำหนดค่าที่เลวร้ายที่สุดที่เป็นไปได้ [... ] ด้วยสามเซิร์ฟเวอร์คุณมีจำนวนเวลาขั้นต่ำ [... ] การกำหนดค่านี้ไม่ให้มีความซ้ำซ้อน อย่างน้อยสี่เซิร์ฟเวอร์ต้นน้ำ [... ] ntpd จะมีแหล่งข้อมูลให้เลือกอย่างเพียงพอ
Mathieu

11

ดู VMware จับเวลาเอกสาร การเรียกใช้ NTP daemon ใน VM อาจไม่ใช่ความคิดที่ดีโดยเฉพาะถ้าคุณต้องการเวลาที่เชื่อถือได้


2
ฮ่าฮ่า - "โดยเฉพาะถ้าคุณต้องการเวลาที่เชื่อถือได้"
squillman

1
ฉันไม่สามารถเห็นด้วยกับคุณมากขึ้นในความเป็นจริงฉันไม่สามารถคิดของเซิร์ฟเวอร์เดียวที่เหมาะสมน้อยที่จะทำงานใน VM :)
Chopper3

6

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

ฉันแสดงความคิดเห็นจากมุมมองขององค์กร xen และ xen แต่ฉันเชื่อว่า vmware / kvm จะเหมือนกัน

เซิร์ฟเวอร์ที่แตกต่างกันใช่คุณถูกต้องพวกเขาควรจะอยู่ในสภาพแวดล้อมที่แตกต่างกันเช่นกันดังนั้นอุณหภูมิ / ความชื้นจะไม่ส่งผลกระทบต่อความถูกต้อง แต่อย่างน้อยฉันก็ไม่สนใจสิ่งนั้น อย่าลืมว่าสิ่งที่คุณทำมันยังไม่แม่นยำเท่านาฬิกาอะตอมดังนั้นเพียงแค่ยอมรับการเบี่ยงเบน (เล็กน้อยมาก)


1

การใช้ NTP ในสภาพแวดล้อมแบบเวอร์ชวลคุณจะโชคดีที่ได้รับความถูกต้อง 20ms (นั่นคือสิ่งที่เราทำโดยใช้ VMware) นาฬิกาเวอร์ช่วลเอียงไม่ดีโดยเฉพาะในสภาพแวดล้อมเวอร์ช่วลที่มีการแย่งชิงทรัพยากร

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

เซิร์ฟเวอร์ NTP ควรอยู่ในโฮสต์ที่มีอยู่จริงเสมอ คุณควรมีอย่างน้อย 3 คนในกลุ่มที่ต้องคอยดูพูล (เพื่อให้เซิร์ฟเวอร์โกงคนหนึ่งลงคะแนนโดยพูล) และถ้าเป็นไปได้รับเวลาของพวกเขาจาก GPS หรือแหล่งข้อมูลระดับท้องถิ่นอื่น ๆ มากกว่า 0 ผ่านทางอินเทอร์เน็ต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.