Windows Server - DFS Yapılandırması

 


Merhaba. 

DFS (Distributed File System), dağıtılmış halde bulunan dosya sunucularınızın tek bir ağ adresi üzerinden erişilebilir olmasına olanak sağlamaktadır. 

Örnek anlatım için aşağıdaki ortamı hazırladım.


Ortamda birden çok dosya sunucusu olduğunu varsayarsak, hangi içeriğin nerede olduğunu kullanıcılarınıza önceden bildirmeniz gerekiyor. Oluşturacağımız yapıda paylaşımların  \\vatanci.int\paylasim adresinde olduğunu belirtip bu adres altından dc ve dc2 de bulunan dizinler için shortcut'lar atayarak yönlendirmeler gerçekleştireceğiz. 

Kurulum için dc ve dc2 isimli sunucularıma DFS Namespaces ve DFS Replication rollerini yükleyeceğim. ( Kısa not: dc2'de ADDS rolü yüklü değildir. Sadece dosya sunucusu olarak kullanacağım.)


DFS Namespaces: Paylaşımlar için DFS çekirdeğini barındırır. 
DFS Replication: İsterseniz paylaşılan içerikleri farklı sunuculara klonlayabilirsiniz. Böylece hem yedekli çalışabilir hem de sunucularınız için farklı site'larınız varsa, client'larınızın kendi bulundukları site'taki sunucudan hizmet almalarını sağlayabilirsiniz.

DFS Namespaces: 
Kurulum tamamlandıktan sonra DFS Management konsolunu çalıştırıp Namespaces > New Namespace'e tıkıyorum. 
Namespace'in hangi sunucuda barınacağını belirtip devam ediyorum.
Paylaşım merkez dizini için "paylasim" adını verip default değerlerle devam ediyorum. 
Eğer Active Directory yapınız varsa Domain-based namespace oluşturabilirsiniz. Domain-based yapının en büyük avantajı, eğer DFS Replicaton kullanıyorsanız kaynak makine kesintiye uğrasa dahi client'larınız replikasyon sunucusu üzerinden paylaşımlara erişmeye devam edebileceklerdir. Standalone yapıda ise, client'larınız hedeflere doğrudan makine adını kullanarak eriştiklerinden dolayı kaynak makine erişilemez duruma gelirse hizmet alan kullanıcılarınıza alternatif sunucunun adını vermeniz gerekecek. (örn: \\dc\paylasim adresi artık geçersiz. İçeriklere \\dc2\paylasim adresinden ulaşabilirsiniz.)
Windows Server 2008 Mode ise, daha sonra bahsedeceğimiz Access Based Enumeration özelliğinin kullanılmasını sağlar. 


Test ortamım için dc'de, Desktop'ta Paylasilan Dosyalar isimli bir dizin oluşturup onun içerisinde de Muhasebe ve Satis isimli dizinler oluşturuyorum. Paylasilan Dosyalar dizinini everyone'a read yetkisiyle paylaştırıyorum. 

Oluşturduğum Namespace'ime sağ tıklayıp New Folder seçeneğini seçiyorum.
Paylaşım adına istediğiniz ismi verebilirsiniz. Burada verdiğiniz ismin paylaşım klasörüyle aynı adı taşımasına gerek yoktur. Add butonuyla hedef dizini seçip Ok ile bu dizini DFS'e ekliyorum.
Aynı işlemi Satis dizini için de tekrarlıyorum.
Domain üyesi herhangi bir sistemden \\vatanci.int\paylasim dizinine erişmek istediğimde karşıma gelen sonuç aşağıdaki gibi olacaktır. 
Farklı bir sunucuda bulunan paylaşımı da yine aynı şekilde DFS'e dahil edebilirsiniz. Örnek olması açısından dc2 makinesindeki BT Ekibi Ortak Alan isimli dizini DFS'e ekleyeceğim. Daha önceden yaptığımız gibi öncelikle bu dizini everyone için read yetkisiyle paylaşıyorum.  

Herhangi bir sistemden dizinlerin özelliklerine girip DFS tab'larını açarsanız, dizinlerin kaynak adresleri hakkında bilgi edinebilirsiniz.
Biraz da Access Based Enumeration özelliğinden bahsedelim.
Bir kullanıcının bir içeriği read edebilme yetkisi yoksa, o içeriğin ilgili kullanıcıya gösterilmemesini sağlar. Normalde Windows paylaşımlarında kullanıcının yetkisi olmadığı halde içeriğe erişilmeye çalışıldığında "erişim engellendi" hatasıyla karşılaşılır. Bu durum sinir bozucu olduğu için Access Based Enumeration özelliğini kullanarak sunucuda dosyalar/dizinler için "kullanıcının yetkisi yoksa gösterme" ayarı yapabiliyoruz.
Örneğin BT Paylasimlari'nın özelliklerine girip Advanced tab'ında yer alan Set exclipt view perms on the DFS folder seçeneğini işretleyip Configure view perms butonuna tıklıyorum. Karşıma gelen izin ayarları penceresinden user isimli kullanıcıya read için deny'ı işaretleyip ok butonu ile işlemi onaylıyorum.
Access Based Enumeration'ın çalışabilmesi için Namespace'inizin özelliklerine girip Advanced tab'ını açıp Enable access-based enumeration for this namespace seçeneğini işaretlemeniz gerekiyor. 
İlgili dizin user isimli kullanıcıya artık gösterilmeyecektir. 

DFS Replication:
Örneğimizde Muhasebe dizini için dc2'de bulunan başka bir paylaşım dizinini ikinci hedef olarak göstereceğiz. 

Yeni bir replikasyon grubu oluşturarak ilgili paylaşım dizinlerini birbiriyle senkronize edebileceğimi iletmekte. Yes butonu ile replikasyon grubu oluşturma sihirbazını başlatıyorum.


Bu ekranda primary member olarak orijinal dosyaların bulunduğu sunucuyu seçmelisiniz. Yanlışlıkla diğer sunucuyu seçerseniz senkronize işlemi diğer sunucudaki dosyaları orijinal dosyalarınızın üzerine yazmaya başlayacağı için veri kaybı yaşayabilirsiniz. Aman dikkat.
Topolojinizdeki tüm üye sunucular birbirleriyle replikasyon yapabilsinler diye Full mesh seçeneği ile devam etmelisiniz. İsterseniz No Topology seçeneği ile replikasyon yönünü daha sonra kendiniz ayarlayabilirsiniz. (Örneğin dosyaların sadece bir merkezden diğer sunuculara dağıtılmasını istiyorsanız bu seçeneği kullanmalısınız.)
Bağlantı hızınız düşükse ya da senkronize için dosyalarınız çok büyük boyutlara ulaşabiliyorsa network bandwidth limiti belirleyebilir ya da belli gün-saatlerde hangi bandwidth ile senkronize yapılacağını ayarlayabilirsiniz.

Sunucular için geçerli olan sites replication duration süresiyle birlikte replikasyonun başlayacağına dair bir bilgilendirme mesajıyla karşılaşıyoruz.  
Replikasyonun hemen başlaması için server'lar üzerinde komut satırını açarak (dc ve dc2 makinelerinde) dfsrdiag pollad komutunu veriyorum.
Muhasebe Test Dosyası'nı önce dc'de açıp dc1 edit notunu düşüp kaydediyorum. Daha sonra dc2 de aynı dosyayı açtığımda düzenlemenin yapıldığını görüp dc2 edit notunu düşüp kaydettikten sonra aynı dosyayı dc'de tekrar açıyorum. Sonuç aşağıdaki gibi. :)

Biraz da ayarları kurcalayalım:

Öncelikle Namespace'in özelliklerine girelim.
Refferals tab'ından sunucular için cache süresini ve replikasyonun neye göre yapılacağını belirleyebilirsiniz. Active Directory Sites and Services'ta yaptığınız replikasyon için cost ayarları varsa, bu ayarlara göre lowest cost değerine göre uygun sunucudan replikasyonun yapılmasını sağlayabilirsiniz.
Advanced Tab'ına bakacak olursak; Optimize for consistency'i seçerek her zaman en güncel dosyaların alınmasını garantileyebilirsiniz. Eğer çok komplike bir ortamınız varsa, örneğin 50 adet fileserver'ın bir arada çalışacağı bir ortamı yapılandırıyorsanız, Optimize for scalability seçeneği ile devam edebilirsiniz. Böylece her zaman PDC makinesine gidilmesine gerek kalmayacaktır. (Bu seçenek her zaman güncel içeriğin alınacağını garanti etmez.) 
Namespace'lerin altında yer alan dizinlerin özelliklerini inceleyecek olursak;

Refferals tab'ına baktığımızda client'lar için cache süresinin buradan değiştirilebilir olduğunu görmekteyiz. Bu değer, dizine erişen bir client'ın hedefe tekrar erişmek istediğinde aynı sunucuya yönlendirilme durumuyla ilgilidir. Aşağıdaki ayarı açıklayacak olursak, örneğin 3 saniye içinde hizmet aldığınız dizin için tekrar istekte bulunursanız yine aynı sunucudan hizmet alacaksınız demektir. 
Perms özelliğinden yukarıda bahsetmiştik.