Jump to content
  • entries
    44
  • comments
    107
  • views
    4036

Η περίπτωση των αρνητικών Pings σε Hyper-V Virtual Machines


GSimos

416 views

Πριν από μερικές ημέρες έπεσα σε ένα αρκετά περίεργο πρόβλημα σε όλους σχεδόν τους Virtual Servers και Clients που διαχειρίζομαι, στο Event Log εμφανίζονταν σε τακτά χρονικά διαστήματα το Event Id: 1054, η εμφάνιση του όμως δεν ήταν ομοιόμορφη μεταξύ των εικονικών μηχανών, συγκεκριμένα το σφάλμα ήταν αυτό:

Hyper-V_VMs_EventID_1054_Neg_Pings_!

Οι Virtual Servers είναι Windows 2003 R2 Standard και είναι Domain Members όπως μπορείτε να καταλάβετε από το παραπάνω σφάλμα, το επόμενο περίεργο είναι ότι δεν υπήρχε κανένα πρόβλημα με τις υπηρεσίες τους προς το δίκτυο και τους χρήστες, η απόκριση σε pings ήταν <1 ms και φαινομενικά δεν υπήρχε πρόβλημα.

Ψάχνοντας το πρόβλημα εντόπισα ότι οφείλεται σε ολίσθηση του μετρητή χρονοσήμανσης (time-stamp counter) στους Virtual Servers με πολλαπλούς επεξεργαστές καθώς και σε φυσικούς Servers με επεξεργαστές “AMD Opteron”, η εξήγηση δίνεται λίγο πιο κάτω.

Εκτός από το Event ID 1054 υπήρχε και ένα άλλο θέμα, όταν εκτελούσα ping από ένα server στην IP ή στο Hostname του (όχι στο localhost), δηλαδή ping στον εαυτό του, λάμβανα αρνητικές μετρήσεις απόκρισης, δείτε την εικόνα:

Hyper-V_VMs_EventID_1054_Neg_Pings_2 

Παρατηρήστε ότι δεν υπάρχει απώλεια πακέτων “Lost = 0 (0% loss)” αλλά οι χρόνοι είναι τραγικοί!

Για να λυθεί λοιπόν το πρόβλημα χρειάζεται να προστεθεί το flag “/usepmtimer” στο Boot.ini, επίσης για Domain Members και Domain Controllers guest λειτουργικά συστήματα πρέπει να απενεργοποιείται το “Time Synchronization” integration έτσι ώστε να χρησιμοποιείται ο DC που μοιράζει την ώρα (PDC Operations Master) από τους Member Servers και η πηγή που έχει καθοριστεί στο Domain Controller για το συγχρονισμό της ώρας (αλλιώς συγχρονίζεται με το ρολόι του VM Host).

Έπειτα από αυτό τα παραπάνω προβλήματα επιλύονται!

Ανατομία του προβλήματος

Από το Service Pack 2 των Windows 2003 χρησιμοποιείται το PM Timer για όλους τους πολυεπεξεργαστικούς APIC HALs ή τους ACPI HALs, εκτός και αν ισχύει μια από τις παρακάτω περιπτώσεις:

  1. Ο έλεγχος αποτύχει να προσδιορίσει μέσω του BIOS αν αυτό υποστηρίζει APIC ή ACPI HALs ή
  2. Το BIOS δεν υποστηρίζει APIC ή ACPI HAL

Οι timers που χρησιμοποιούν τα Windows είναι δυο: α) TSC (Time-Stamp Counter) και β)  PM Timer και η  function που χρησιμοποιεί έναν timer από τους δυο λέγεται “QueryPerformanceCounter”, εξ’ ορισμού αυτή χρησιμοποιεί τον TSC ο οποίος μετρά κύκλους της CPU, όμως ο TSC για κάθε εικονικό επεξεργαστή ενδέχεται να είναι διαφορετικός με αποτέλεσμα να υπάρχουν διαφορετικές ενδείξεις για κάθε εικονικό επεξεργαστή και συνήθως οπισθοδρόμηση (ολίσθηση) του TSC, αυτό σε single processor VMs δεν ισχύει καθώς αναλαμβάνει ο Hyper-V αυτή τη δουλειά.

Αλλάζοντας λοιπόν την πηγή από TSC σε PM τα προβλήματα εξαφανίζονται καθώς η ώρα είναι ακριβής, πράγμα που όσοι γνωρίζετε από Active Directory και Kerberos είναι σημαντικό να μην αποκλίνει διαφορετικά ο Kerberos δεν αποδέχεται τα requests των Clients λόγω της ευαισθησίας του στην ώρα.

Πηγές:

Το κείμενο της ανατομίας βασίστηκε στα δυο τελευταία άρθρα.

Σημειώστε ότι το πρόβλημα εμφανίζεται είτε ο Hyper-V έχει Intel είτε AMD επεξεργαστές, μην το συγχέετε με την περίπτωση των φυσικών Servers με AMD Opteron επεξεργαστή.

Το παρόν ισχύει μόνο στα Windows 2003 και Windows XP.

Εμπρός λοιπόν ελέγξτε τα Virtual Machines σας τώρα!

3 Comments


Recommended Comments

Τα αρνητικά pings που δε φαίνονται στη συγκεκριμένη εικόνα (αλλά φαίνονται pings μεγάλης διάρκειας) είναι αποτέλεσμα της επιλογής λανθασμένου timer. Στην αναζήτηση μου για τα σφάλματα στο Event Log έπεσα σε πηγές που ανέφεραν ότι αν έχεις αρνητικά pings κάνοντας Ping στην IP του server από τον ίδιο Server τότε το πρόβλημα είναι η λανθασμένη επιλογή του timer.

 

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...