Aracılığıyla paylaş


Azure'da Windows VM'leri için zaman eşitleme

Şunlar için geçerlidir: ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri ✔️ Tekdüzen ölçek kümeleri

Zaman eşitlemesi güvenlik ve olay bağıntısı için önemlidir. Bazen dağıtılmış işlemlerin uygulanması için kullanılır. Birden çok bilgisayar sistemi arasındaki zaman doğruluğu eşitleme yoluyla elde edilir. Eşitleme, yeniden başlatmalar ve zaman kaynağı ile saati getiren bilgisayar arasındaki ağ trafiği de dahil olmak üzere birden çok şeyden etkilenebilir.

Azure artık Windows Server 2016 çalıştıran altyapı tarafından desteklenir. Windows Server 2016' da saati düzeltmek ve yerel saati UTC ile eşitlenecek şekilde ayarlamak için kullanılan algoritmalar geliştirildi. Windows Server 2016, VM'lerin doğru zaman için konakla nasıl eşitlendiğini yöneten VMICTimeSync hizmetini de geliştirdi. İyileştirmeler, VM başlatma veya VM geri yüklemesinde daha doğru başlangıç zamanı ve Windows Saati'ne (W32time) sağlanan örnekler için kesinti gecikmesi düzeltmesini içerir.

Uyarı

Windows Saat hizmetine hızlı bir genel bakış için bu üst düzey genel bakış videosuna göz atın.

Daha fazla bilgi için Windows Server 2016 için Doğru Zaman’a bakın.

Genel Bakış

Bilgisayar saatinin doğruluğu, bilgisayar saatinin Eşgüdümlü Evrensel Saat (UTC) saat standardına ne kadar yakın olduğunu ölçer. UTC, 300 yılda yalnızca bir saniye kapalı kalan hassas atomik saatlerden oluşan çok uluslu bir örnekle tanımlanır. Ancak UTC'nin doğrudan okunması için özel donanım gerekir. Bunun yerine, zaman sunucuları UTC ile eşitlenir ve ölçeklenebilirlik ve sağlamlık sağlamak için diğer bilgisayarlardan erişilir. Her bilgisayarda hangi saat sunucularının kullanılacağını bilen zaman eşitleme hizmeti çalışır ve bilgisayar saatinin düzeltilmesi gerekip gerekmediğini düzenli aralıklarla denetler ve gerekirse zamanı ayarlar.

Azure konakları, GPS antenlerine sahip Microsoft'a ait Stratum 1 cihazlarından zamanlarını alarak dahili Microsoft zaman sunucularına eşitlenmiştir. Azure'daki sanal makineler VM'ye doğru zamanı (host zamanı) aktarmak için konaklarına bağımlı olabilir ya da VM doğrudan bir zaman sunucusundan zaman alabilir veya her ikisinin bir kombinasyonunu kullanabilir.

Ana bilgisayar ile sanal makine etkileşimleri de saati etkileyebilir. Bellek koruma bakımı sırasında VM'ler 30 saniyeye kadar duraklatılır. Örneğin, bakım başlamadan önce VM saati 10:00:00'ı gösterir ve 28 saniye sürer. VM devam ettirildikten sonra, VM üzerindeki saat halen 10:00:00'ı gösteriyor olacak ve bu, 28 saniye yanlış olacaktır. Bunu düzeltmek için VMICTimeSync hizmeti konakta neler olduğunu izler ve telafi etmek için VM'lerde değişikliklerin gerçekleşmesini ister.

VMICTimeSync hizmeti örnek veya eşitleme modunda çalışır ve yalnızca ileriye doğru saati etkiler. W32time'ın çalıştırılmasını gerektiren örnek modunda, VMICTimeSync hizmeti konağı 5 saniyede bir yoklar ve W32time'a zaman örnekleri sağlar. Yaklaşık her 30 saniyede bir W32time hizmeti en son zaman örneğini alır ve konuğun saatini etkilemek için kullanır. Bir konuk devam ettirilirse veya konuğun saati konağın saatinin 5 saniyeden fazla gerisinde kalırsa saat eşitleme modu etkinleştirilir. W32time hizmetinin düzgün çalıştığı durumlarda, ikinci durum hiçbir zaman gerçekleşmemelidir.

Zaman eşitlemesi çalışmadığında, sanal makinedeki saatte zaman bilgisi hataları birikir. Yalnızca bir VM olduğunda, iş yükü yüksek oranda doğru zaman tutma gerektirmediği sürece etki önemli olmayabilir. Ancak çoğu durumda, birbirine bağlı birden çok VM'miz vardır. Bu VM'ler işlemleri izlemek için zamanı kullanır ve zaman, tüm dağıtım süresince tutarlı olmalıdır. VM'ler arasındaki süre farklı olduğunda aşağıdaki efektleri görebilirsiniz:

  • Kimlik doğrulaması başarısız olur. Kerberos veya sertifikaya bağımlı teknoloji gibi güvenlik protokolleri, sistemlerde zamanın tutarlı olmasına dayanır.
  • Günlükler (veya diğer veriler) zamanla uyuşmuyorsa, sistemde neler olduğunu belirlemek çok zordur. Aynı olay farklı zamanlarda gerçekleşmiş gibi görünerek bağıntıyı zorlaştırır.
  • Saat kapalıysa faturalama yanlış hesaplanabilir.

Windows dağıtımları için en iyi sonuçlar, zaman eşitlemesindeki en son geliştirmeleri kullanabilmenizi sağlayan konuk işletim sistemi olarak Windows Server 2016 kullanılarak elde edilir.

Yapılandırma seçenekleri

Azure'da barındırılan Windows VM'leriniz için zaman eşitlemeyi yapılandırmak için üç seçenek vardır:

Varsayılanı kullan

Varsayılan olarak, Windows işletim sistemi sanal makina görüntüleri iki kaynaktan senkronize olacak şekilde w32time için yapılandırılır.

  • time.windows.com'dan bilgi alan NtpClient sağlayıcısı.
  • VM'nin bakım amacıyla duraklatılmasından sonra konak zamanını sanal makinelere iletmek ve düzeltmeler yapmak için kullanılan VMICTimeSync hizmeti. Azure konakları, zamanı doğru tutmak için Microsoft'a ait Stratum 1 cihazlarını kullanır.

w32time, zaman sağlayıcısını şu öncelik sırasına göre tercih eder: katman düzeyi, kök gecikmesi, kök dağılımı, zaman uzaklığı. Çoğu durumda, Azure VM'deki w32time, her iki zaman kaynağını karşılaştırmak için yapacağı değerlendirmeler sonucunda ana bilgisayar saatini tercih eder.

Etki alanına katılmış makineler için etki alanının kendisi zaman eşitleme hiyerarşisi oluşturur, ancak orman kökünü hala bir yerden zaman alması gerekir ve aşağıdaki hususlar yine de true olacaktır.

Sadece ana bilgisayar

time.windows.com genel bir NTP sunucusu olduğundan, saati eşitlemek için internet üzerinden trafik gönderilmesi gerekir; değişen paket gecikmeleri zaman eşitleme kalitesini olumsuz etkileyebilir. time.windows.com yerine yalnızca konak eşitlemesine geçmek, zaman eşitleme sonuçlarınızı bazen iyileştirebilir.

Varsayılan yapılandırmayı kullanarak zaman eşitleme sorunlarıyla karşılaşırsanız konak tabanlı zaman eşitlemeye geçiş yapmak mantıklıdır. Bunun VM'de zaman eşitlemesini geliştirip geliştirmeyeceğini görmek için yalnızca konak eşitlemesini deneyin.

Dış zaman sunucusu

Belirli zaman eşitleme gereksinimleriniz varsa, dış zaman sunucularını kullanma seçeneği de vardır. Dış zaman sunucuları kesin bir zaman sağlayabilir, bu da test senaryoları için yararlı olabilir, Microsoft dışı veri merkezlerinde barındırılan makinelerle zaman uyumunu sağlayabilir veya artık saniyeleri özel bir şekilde yönetebilir.

Dış sunucuları VMICTimeSync hizmeti ve VMICTimeProvider ile birleştirerek varsayılan yapılandırmaya benzer sonuçlar sağlayabilirsiniz.

Yapılandırmanızı kontrol edin

NtpClient saat sağlayıcısının açık NTP sunucularını (NTP) veya etki alanı zaman eşitlemesini (NT5DS) kullanacak şekilde yapılandırılıp yapılandırılmamış olduğunu denetleyin.

w32tm /dumpreg /subkey:Parameters | findstr /i "type"

VM NTP kullanıyorsa aşağıdaki çıkışı görürsünüz:

Value Name                 Value Type          Value Data
Type                       REG_SZ              NTP

NtpClient saat sağlayıcısının hangi saat sunucusunu kullandığını görmek için yükseltilmiş bir komut istemine yazın:

w32tm /dumpreg /subkey:Parameters | findstr /i "ntpserver"

VM varsayılanı kullanıyorsa çıkış şu şekilde görünür:

NtpServer                  REG_SZ              time.windows.com,0x8

Şu anda hangi saat sağlayıcısının kullanıldığını görmek için.

w32tm /query /source

Görebileceğiniz çıkış ve bunun ne anlama gelebileceği aşağıdadır:

  • time.windows.com - Varsayılan yapılandırmada, w32time zamanı time.windows.com'dan alır. Zaman eşitleme kalitesi, İnternet bağlantısına bağlıdır ve paket gecikmelerinden etkilenir. Bu, fiziksel bir makinede elde edeceğiniz her zamanki çıkıştır.
  • VM IC Zaman Eşitleme Sağlayıcısı - VM zamanı konaktan eşitler. Bu, Azure'da çalışan bir sanal makinede genellikle elde edeceğiniz çıkıştır.
  • Etki alanı sunucusu - mevcut makine bir etki alanındadır ve etki alanı zaman eşitleme hiyerarşisini tanımlar.
  • Başka bir sunucu - w32time, başka bir sunucudan zaman alacak şekilde açıkça yapılandırıldı. Zaman eşitleme kalitesi bu zaman sunucusu kalitesine bağlıdır.
  • Yerel CMOS Saati - saat eşitlenmemiş. Yeniden başlatma sonrasında w32time'ın başlamak için yeterli zamanı yoksa veya yapılandırılan tüm zaman kaynakları kullanılabilir olmadığında bu çıkışı alabilirsiniz.

Yalnızca ana bilgisayar zaman eşitlemesini tercih et

Azure, konaklarda zaman eşitlemesini geliştirmek için sürekli çalışmaktadır ve tüm zaman eşitleme altyapısının Microsoft'a ait veri merkezlerinde birlikte bulunmasını garanti edebilir. Birincil saat kaynağı olarak time.windows.com'u tercih eden varsayılan kurulumda zaman eşitleme sorunlarınız varsa, yalnızca host sistemi zaman eşitlemesini devreye almak için aşağıdaki komutları kullanabilirsiniz.

VMIC sağlayıcısını etkin olarak işaretleyin.

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\VMICTimeProvider /v Enabled /t REG_DWORD /d 1 /f

NTPClient sağlayıcısını devre dışı olarak işaretleyin.

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpClient /v Enabled /t REG_DWORD /d 0 /f

w32time Hizmetini yeniden başlatın.

net stop w32time && net start w32time

Windows Server 2012 ve R2 VM'leri

Windows Server 2012 ve Windows Server 2012 R2 zaman eşitleme için farklı varsayılan ayarlara sahiptir. w32time varsayılan olarak, hizmetin belirli bir zamana göre düşük ek yükünü tercih eden bir şekilde yapılandırılır.

Windows Server 2012 ve 2012 R2 dağıtımlarınızı tam zamanı tercih eden daha yeni varsayılan değerleri kullanacak şekilde taşımak istiyorsanız, aşağıdaki ayarları uygulayabilirsiniz.

w32time yoklamasını güncelleştirin ve aralıkları Windows Server 2016 ayarlarıyla eşleşecek şekilde güncelleştirin.

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v MinPollInterval /t REG_DWORD /d 6 /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v MaxPollInterval /t REG_DWORD /d 10 /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v UpdateInterval /t REG_DWORD /d 100 /f
w32tm /config /update

Yeni yoklama aralıklarını kullanabilmek için w32time NtpServer'ların bunları kullanıyor olarak işaretlenmesi gerekir. Sunuculara bitflag maskesiyle 0x1 ek açıklama eklenirse, bu mekanizma geçersiz kılınacak ve w32time bunun yerine kullanılacaktır SpecialPollInterval . Belirtilen NTP sunucularının ya 0x8 bayrağını kullandığından ya da hiç bayrak kullanmadığından emin olun.

NTP sunucuları için hangi bayrakların kullanıldığını denetleyin.

w32tm /dumpreg /subkey:Parameters | findstr /i "ntpserver"

Sonraki adımlar

Zaman eşitlemesi hakkında daha fazla ayrıntının bağlantıları aşağıdadır: