Windows Server 2012 BranchCache ve Uygulama Adımları

Windows Server işletim sistemi ile beraber ücretsiz olarak sunulan Branch Cache özelliği sayesinde uzak lokasyonlardaki istemcilerin merkez lokasyonda bulunan dosya, web server, WSUS ve benzeri sunuculardaki içeriklerin şube lokasyonunda istemcilerin kendi disklerinde veya merkezi cache sunucularında saklanması sayesinde network performans artışı sağlayan bir çözümdür.

 

Hosted cache mode daha sağlıklı ve tavsiye edilen bir yöntem olmasına karşın bu senaryoda her şube için en az bir veya daha fazla sunucu gereklidir. Eğer şube lokasyonlarında sunucu barındırma şansınız yok ise bu durumda distributed cache mode kullanabilirsiniz. Yani istemciler aldıkları dosyaları kendi cache dizinlerinde saklar ve yine ihtiyaç duyan diğer istemciler ile paylaşır.

Desteklenen protokoller aşağıdaki gibidir;

HTTP-HTTPS – Web browser ve diğer uygulamalar
SMB – Dosya paylaşımı
BITS – Bir Windows bileşenidir. Temel amacı bir içeriğin parçalara ayrılacak network kullanımının düşük olduğu zamanlarda sunucudan istemciye doğru gönderilmesini sağlar.

BranchCache için ek bir yatırıma gerek yoktur, Windows 7 veya daha üstü bir veya birden çok client bu iş için kullanılabilir. Benzer şekilde şube lokasyonundaki bir veya birden çok Windows Server 2008R2 veya daha yeni işletim sistemi bize hizmet etmek için yeterlidir.

BranchCache ile şube lokasyonunda saklanan dosyalar yine güvenlik amaçlı sadece yetkili olan kullanıcılar için erişebilir durumdadır. Yani A kullanıcısının çok kullandığı bir dosyanın cache de olması onu B kullanıcısının görebileceği anlamına gelmez.

BranchCache arka planda güvenlik için Secure Sockets Layer (SSL), SMB signing, ve end-to-end IPsec kullanır

Temel olarak iki modelde uygulanabilir

Hosted cache mode – Cache dosyalarının şube tarafında bir sunucuda tutulması
Distributed cache mode – Cache dosyalarının şube tarafında bir PC de tutulması. Avantajı sunucu gereksinimi olmamasıdır. Dezavantajı ise ilgili makine uykuya dalar veya kapanır ise sistem çalışmaz. Bu konfigürasyon sadece tek bir subnet için çalışır.

Organizasyonuz içerinde yukarıdaki modları farklı farklı kullanabilirsiniz, yani sunucu olan bir şubede hosted, olmayan da ise distributed kullanılabilir. Ancak bir şube için iki kullanım aynı anda söz konusu değildir.

Peki bir istemci bu sistemi nasıl kullanır?

1 – İstemci makine branchcache hiç yokmuş gibi genel müdürlükte bulunan bir kaynağa erişmek ister.
2 – Kimlik doğrulama adımlarını başarılı bir şekilde geçip içeriğe ulaşır.
3 – Bu aşamada içeriği barındıran sunucu kendi üzerinde tuttuğu hash tablosu ile kullanıcının istemiş olduğu verinin hashlerini kontrol eder. Bu kontrolün amacı bu içerik daha önce istenmiş ve cachelenmiş mi diyedir. Eğer içerik ilk defa isteniyor ise hash halinde istenilen içeriği tanımlayan bir bilgi yollar istemci makineye. Yine içeriği tutan sunucu aynı oturumda istenilen datalarıda normal yollar ile istemciye gönderir. Ancak isteği yapan bu istemcinin istemiş olduğu veri daha önceden istenmiş bir veri olsaydı, merkezdeki sunucu hash tablosundan bunun fark edecek ve verinin orijinali yerine sadece hash bilgisini verecekti.
4 – Merkezdeki sunucudan alınan hash sayesinde istemci bilgisayar şunları yapar;
Eğer istemci makine distributed cache olarak konfigüre edilmiş ise istemci multicast bir çağrı ile bu dosyayı daha önceden indiren bir client arar. ( UDP 3702 )
Eğer istemci makine hosted cache olarak konfigüre edilmiş ise, bu durumda içeriği hosted cache sunucusu üzerinde arar
5 – Eğer içerik şube lokasyonunda erişilebilir ise istemci bu veriyi diğer client PC’lerden veya hosted cache sunucusundan alır ( modele göre kaynak değişiyor). İstemci makine merkezden aldığı hash sayesinde verinin güncel ve bozuk olmadığını doğrular
6 – Eğer içerik şube lokasyonunda erişilebilir durumda değil ise istemci makine veriyi merkezdeki sunucudan çeker. Yine modele göre eğer daha sonra şubeden başka bir istemci benzer şekilde bu veriyi talep eder ise ona sunabileceği gibi, hosted mode olarak ayarlanmış bir şube yapısında ise indirdiği bu içeriği hosted cache sunucusuna gönderir.

Not: Varsayılan olarak istemci ile sunucu arasındaki network gecikmesi 80milisaniyeden düşük ise BranchCache çalışmaz, yani gelen istemciyi hızlı bir network olarak kabul eder, bu varsayılan bir ayar olup bunu değiştirebilirsiniz.

GPO ile bunu kolayca yapabilirsiniz

 

Uygulama ile ilgili makalemizi takip edebilirsiniz

Windows Server 2008 Branch Cache – ÇözümPark (cozumpark.com)

Dosyanın güncel olup olmadığını hash ile anlar, sonuçta istek ilk olarak merkezdeki sunucuya gelir, merkezdeki sunucu dosyanın en güncel hali için bir hash verir, istemcide o hash i lokalde arar, var ise kullanır yok ise sunucudan istek yapar

BC uygulaması için öncelikle senaryoyu seçiyoruz;

 

Temelde 4 adımımız vardır

·        Install and Configure Content Servers

·        Deploy Hosted Cache Servers (Optional)

·        Prehashing and Preloading Content on Hosted Cache Servers (Optional)

·        Configure BranchCache Client Computers

Hangi senaryoyu seçerseniz seçin merkez ofis’ e bir veya birden çok Content Server kurmanız veya kurulu olan bu sunucular üzerinde gerekli servisleri aktif etmeniz gereklidir. Content server bir Web server, Background Intelligent Transfer service (BITS) temelli bir uygulama sunucusu ( WSUS veya System Center Configuration Manager branch distribution site system servers ) olabileceği gibi bir file server da olabilir. Ancak file server için ek olarak BranchCache for network files rolünün de yüklenmesi gereklidir.

Not: WSUS için Brach Cache servis yüklemesi dışında ek bir yapılandırma gerekmektedir.

İlk olarak content server üzerinde BC servisini yükleyelim.

PS ile aşağıdaki komutları kullanabilirsiniz.

Install-WindowsFeature BranchCache

Restart-Computer

Not: File Server gibi aktif kullanılan bir sunucu için bu yüklemeyi mesai saatleri dışında yapmanız daha uygun olacaktır, çünkü yükleme sonrası BC servisinin aktif olması için bilgisayarın yeniden başlatılması gereklidir.

Yada Server Manager ara yüzünden feature bölümünden BranchCache özelliğini seçerek yüklemeyi yapabilirsiniz.

 

Kurulum sonrasında servisin çalıştığını kontrol edebilirsiniz

 

Servis ismi aslında PeerDistSvc olarak geçer.

Eğer kurulum yaptığınız content server bir WSUS sunucusu ise yamaların ve bunlara bağlı metadata verilerinin local sunucu üzerinde olmasını sağlayınız. Bu sayede BC anlamlı bir şekilde çalışacaktır.

WSUS sunucuları için yama ve yamalara bağlı metadata’ ların yerel olarak saklanması için gerekli ayarları aşağıdaki link üzerinden inceleyebilirsiniz.

https://technet.microsoft.com/tr-TR/Library/cc708431.aspx

Eğer content server olarak bir file server kullanmaya niyetiniz var ise yukarıdaki BC servis yüklemesine ek olarak bir yükleme yapmamız gerekmektedir.

 

Bunun için yine Server Manager üzerinden File and Storage Services altında bulunan “BranchCache for Network Files” kutucuğunu işaretleyerek ilgili role bileşenini kurmalıyız.

Bu kurulumu da PS ile yapabilirsiniz.

Install-WindowsFeature FS-BranchCache -IncludeManagementTools

Restart-Computer

Ek olarak file server için veri tekilleştirme özelliğini de kurmanızı tavsiye ederim.

Install-WindowsFeature FS-Data-Deduplication -IncludeManagementTools

Şimdi ise yine file server için yapmamız gereken “hash publication” işlemini açmalıyız.

Bunun için öncelikle bir OU açarak bir veya birden çok file server var ise bu sunucuları ilgili OU ya alınız. Daha sonra ise yeni bir GPO oluşturarak ilgili ayarları yapmalıyız. Bu adımlar tabiki şart değil, yani mevcut file server için yine mevcut bir GPO ile bu ayarları yapabilirsiniz.

Ben yeni oluşturacağım OU ya yerleştirdiğim FilServer için yeni bir GPO oluşturdum ve ismini “BranchCache Hash Publication” yapıyorum.

Ayarlar ise aşağıdaki gibidir;

Computer Configuration, Policies, Administrative Templates, Network, Lanman Server

Lanman server bölümünde sağ tarafta yer alan “Hash Publication for BranchCache” ayarını resimde olduğu gibi değiştiriyoruz. Burada isterseniz ilgili policy’ yi alan bir file server üzerindeki tüm  paylaşımlardaki dosyalar için hash desteği sunarken isterseniz bu paylaştırılmış klasörlerden sadece BC özelliği açık olanlar için hash desteği sunabilirsiniz. Bende bunu tercih ettiğim için “Allow hash publication onyl for shared folders on which BranchCache is enabled” seçeneğini seçiyorum.

Bunun seçtiğim için şimdi file server üzerinde hangi paylaşımlar için BC özelliğini açacağımızı seçiyoruz.

Bunun için paylaşımdaki klasör özelliklerinden aşağıdaki yolu izleyerek BC özelliğini açıyoruz.

 

Şimdi sıra hosted cache server kurulumuna geçelim. Eğer BC senaryosunda siz Distributed Cache kullanıyorsanız bu durumda hosted cache sunucusu kurmanıza gerek yok. Senaryoyu hatırlamanız için tekrar mimari yapıyı paylaşıyorum.

Bir ofis için birden çok hosted cache server kurabilirsiniz. Benim senaryomda bir adet kurulum yapacağım.

Hosted olacak sunucuda aşağıdaki PS ile ilk kurulumu yapalım

Install-WindowsFeature BranchCache –IncludeManagementTools

Eğer hosted sunucusu workgroup bir makine ise aşağıdaki komutu çalıştırmamız gereklidir

Enable-BCHostedServer

Eğer bu sunucu domain üyesi bir sunucu ise aşağıdaki komut ile özelliği aktif hale getiriyoruz.

Enable-BCHostedServer –RegisterSCP

Son olarak durumu kontrol etmek için

Get-BCStatus

 

Çıktıdaki önemli bölüm aşağıdaki gibidir

HostedCacheServerConfiguration:
HostedCacheServerIsEnabled        : True
ClientAuthenticationMode          : Domain
HostedCacheScpRegistrationEnabled : True

Domain ortamı için sorunsuz bir şekilde yapılandırmayı gerçekleştirdiğimizi görüyoruz.

Hosted Cache server hazır olduğuna göre merkez ofisteki file server veya web server üzerindeki dosyaları elle bu sunucu üzerine cache olarak gönderebiliriz. Bu şart değil ancak yapılması durumunda senaryo kullanılmaya başlandığı anda uza ofisler için dosyalar hazır olacaktır.

Bunun için öncelikle web veya dosya içeriğini aşağıdaki komut seti ile export etmeye hazır hale getiriyoruz

Publish-BCFileContent -Path D:\share –StageData

Eğer bir Web içeriği ile çalışıyorsanız bu durumda komut seti PublishBCWebFileContent olmalıdır.

ExportBCCachePackage –Destination D:\temp

Yukarıdaki komut ile ise File veya Web content komutları ile hazırlanmış tüm hash dosyası D:\temp klasörüne alınır.

Daha sonra bu klasördeki veriyi istediğiniz bir yöntem ile ( ftp, dvd, dropbox, onedrive vb ) hosted cache sunucusuna transfer etmelisiniz. Ettikten sonra ise aşağıdaki komut ile bunu import ediyoruz.

ImportBCCachePackage –Path D:\temp\PeerDistPackage.zip

Hosted sunucusu D – temp klasörüne alınan PeerDistPackage.zip dosyası ki bu export ettiğiniz dosya import ederek BC uygulamasında kullanılacak dosya içeriklerinin hash hali alınmış olur.

Sunucu tarafındaki Config tamamlanmış oldu. Sıra istemci tarafındaki yapılandırma ayarlarına geldi.

İstemci tarafında da sunucu tarafında olduğu gibi yeni bir OU ve yeni bir GPO ile ilerleyebilirsiniz.

OU ve GPO size kalmış, GPO ayarları ise aşağıdaki gibi olmalıdır.

GPO ismi “BranchCache Client Computers”

Computer Configuration, Policies, Administrative Templates, Network, BranchCache

 

Turn on BranchCache ayarı açık olmalıdır

 

Eğer BC senaryosunda cache senaryosu için Distributed Cache mode kullanacaksanız aşağıdaki policy ayarı için “enabled” seçmeniz yeterli olacaktır.

Set BranchCache Distributed Cache mode

Ben bu GPO ayarını olduğu gibi bırakıyorum çünkü benim senaryomda “Hosted Cache Server” kullanıyor olacağım.

Not: Benim lab ortamımda şubedeki VPN server aynı zamanda Hosted Cache için kullanılıyor, yani ismini aldanmayın lütfen.

Bu nedenle hemen bir altında bulunan “Set BranchCache Hosted Cache mode” policy için yukarıdaki gibi yapılandırıyorum. Sunucu ismi ofis lokasyonunda hosted olacak sunucu ismi olmalıdır.

Eğer bir site için birden çok hosted cache server yapılandıracaksanız istemcilerin bunun AD veri tabanından otomatik olarak bulması için aşağıdaki GPO ayarını aktif etmeniz gereklidir.

Enable Automatic Hosted Cache Discovery by Service Connection Point

Bu sayede istemciler birden çok olan sunucu senaryolarında bu GPO ile AD üzerinden SCP öz niteliğini kullanarak hosted cache sunucularının listesine ulaşabilir.

Eğer şube lokasyonunda bu GPO yu alamayacak WG makineler var ise elle aşağıdaki gibi PS kullanabilirsiniz

Dağıtık cache mimarisi için

Enable-BCDistributed

Hosted cache mimarisi için ( bcserver1 ve 2 hosted sunucu isimleri için örnektir)

Enable-BCHostedClient –ServerNames bcserver1.cozumpark.local, bcserver2.cozumpark.local

Eğer Windows Server 2008 R2 ve Windows 7 olan bir ortamda BC aktif ediyorsanız versiyon bilgisi kullanın.

Enable-BCHostedClient –ServerNames bcserver1.cozumpark.local  –UseVersion Windows7

Windows7 sürümü BC için ilk sürüm olup değişen dosyaları komple şubeye gönderirken Windows 8 ve Windows Server 2012 ile beraber V2 yani sadece değişen bölümler güncellendiği için bant genişliği kullanımı iyileştirilmiştir.

Senaryomuzda pek çok şirket ortamında olduğu gibi Windows firewall kapalıdır. Eğer siz son kullanıcı bilgisayarında aktif olarak Windows firewall kullanıyorsanız aşağıdaki protokoller için izin vermeniz gerekildir.

Peer Content Caching and Retrieval Discovery Protocol

Peer Content Caching and Retrieval: Retrieval Protocol

Firewall kapalı ise artık istemci tarafındaki kontrolleri tamamlayarak BC senaryomuzun test etmeye başlayabiliriz.

İstemci tarafta aşağıdaki komutları çalıştırın

gpupdate /force

net stop peerdistsvc

net start peerdistsvc

Daha sonra BracnhCache durumuna bir bakalım

Get-BCStatus

Yukarıdaki resimde de görebileceğiniz gibi mevcut istemci durumu, “HostedCacheClient”, hosted sunucu ismi, “vpnserver.cozumpark.local” yani özetle hazır diyebiliriz.

Peki sistemin aktif olarak çalışıp çalışmadığını nasıl test edeceğiz?

Bunun için öncelikle istemci makinede perfmon çalıştırıyoruz.

Mevcut counter ları şekildeki gibi kırmızı çarğı ile silip hemen yanındaki yeşil artı işaretine basıyoruz.

Çıkan menüden BranchCache counter başlığını bulup tüm alt sayaçları ile beraber Add diyerek ekliyoruz.

Daha sonra üst menüden rapor bölümüne geçiyoruz.

Yapmamız gereken uzak sunucudan bir dosya kopyalamak, sonra bu dosyayı silip bir daha kopyalamak ve hem hıza hem de aşağıdaki gibi ilk kopyalamada kırmızı işaretli alanın arttığına, ikinci kopyalamada ise yeşil ile işaretli alanın arttığını göreceğiz

Kırmızı alan cache olmadan sunucudan direkt alınan değer iken yeşil cache server dan alınan verileri gösterir.

Uygulama da yaşayacağınız sorular için forum bölümünü kullanabilirsiniz.

Not: Bir ekleme yapmak istiyorum. Bu özelliği makalede anlatıldığı gibi SMB paylaşımı için kullanmak istiyorsanız sadece aşağıdaki sürümleri kullanabilirsiniz;

Windows 10 Enterprise

Windows 10 Education

Windows 8.1 Enterprise

Windows 8 Enterprise

Windows 7 Enterprise

Windows 7 Ultimate

Yukarıdaki işletim sistmemleri aşağıdaki protokoller için BC özelliğini desteklerler;

Background Intelligent Transfer Service (BITS), Hyper Text Transfer Protocol (HTTP), and Server Message Block (SMB).

Aşağıdaki sürümler ise sadece BITS desteği sunar, yani BITS kullanan bir uygulamanız var ise ok ama genelde şirketler dosya paylaşımında bu özelliği kullanmaktadır;

Windows 10 Pro, BITS support only

Windows 8.1 Pro, BITS support only

Windows 8 Pro, BITS support only

Windows 7 Pro, BITS support only

Kaynak

Windows Server 2012 BranchCache Deployment Guide

https://docs.microsoft.com/en-us/windows-server/networking/branchcache/branchcache
Exit mobile version