Azure File Sync – Bölüm 2
Makalemin ilk bölümünde daha çok alt yapı olarak Azure File Sync servisini anlatmaya çalıştım. Bu bölümde ise servisin gerçek hayatta nasıl kullanılacağını sizlerle paylaşacağım. Kurulum aşamasından önce bu servis için bilmemiz gereken kavramları ve ön gereksinimleri sizler ile paylaşıyor olacağım. Ayrıca bu servisi mevcut ortamlarınızda hangi şartlarda hangi özellikleri ile kullanabileceğinizi anlatacağım.
Öncelikle bu servis ile Çözümpark’ ın Radore veri merkezindeki sunucu ve storage sistemlerindeki tüm yedeklerini Azure dosya sistemine taşıdığımı söylemek istiyorum. Yani bu servis ile Türkiye de (belki de Dünya da)şu ana kadar en çok veri taşımış bir uzman tecrübesi ile bu makaleyi kaleme alıyorum. Toplam 15TB üstü 10 yıllık bir veriyi buluta çıkardım. Bu sürede bana destek olan Radore veri merkezindeki arkadaşlara çok teşekkür ediyorum.
Aslında benim için yıllandırılmış bu dosyaları saklamak, sunucu’ dan sunucuya, storage’ dan storage’ a hatta malum 10 yıl içerisinde 3 veri merkezi değiştirmiş birisi olarak bir veri merkezinden diğerine taşıma bir maliyetli ve yorucu oluyordu. Artık eski yedeklerimiz bulut ortamındaki bu bana büyük bir esneklik kazandırdı. Aslında bizim gibi teknolojiyi yakından takip edenler için Azure File Sync servisi çok yeni değil ondan bende henüz ilk duyduğumdan beri böyle bir proje için kullanmak istiyordum ve kullandım. Her zaman olduğu gibi beğendiğim bir teknoloji veya ürün var ise mutlaka makalesini yazmak isterim. Benim bu makaleye başlama hikayemde böyle oldu anlayacağınız.
Peki bu kadar hikâye yeter biraz iş yapalım.
Azure File Sync servisini kullanmak istiyorsanız öncelikle aşağıdaki kavramları bilmeniz gerekli;
· Storage Sync Service
· Sync group
· Registered server
· Azure File Sync agent
· Server endpoint
· Cloud endpoint
· Cloud tiering
Storage Sync Service
Azure File Sync servisinin en üst seviye kaynağıdır. Bildiğiniz gibi azure portalında kaynaklar yani resource bilinen bir kavram olup aslında ilk olarak en üst seviyede Azure depolama senkronizasyon hizmetini tanımlıyoruz.
Storage sync servisi, Azure File Sync servisi için bir kaynaktır (ilk olarak tanımlanan bir kaynak olduğu için top-level resource olarak da bilinir). Bu kaynak aynı zamanda storage hesaplarının kaynakları ile çifttir. Azure resource group içerisine tanımlanabilir. Bir abonelik içerisinde birden çok storage sync service olabilir. Çünkü temel olarak Storage sync servisi birden çok sync group ile birden çok storage hesabını eşitleyebilir.
Sync Group
Bir sync grup, bir dosya kümesinin senkronizasyon topolojisini tanımlar. Örneğin iki endpoint (dosya sunucusu veya klasör gibi düşünebilirsiniz) eğer aynı sync group içerisinde ise birbirini eşitleyecek şekilde dosyaları iletir. Sync group mutlaka bir storage account’ a bağlı olmalıdır. Çünkü dosya eşitleme işlemini azure storage üzerinde gerçekleştirecektir.
Registered server
Storage sync servis ile güven ilişkisi kuran sunucu veya cluster ortamlarını temsil eder. Bir sunucu aynı anda sadece bir tane storage sync servis’ e kayıt olabilir.
Azure File Sync agent
Azure File Sync aracı, Windows Server’ ın bir Azure dosya paylaşımı ile senkronize edilmesini sağlayan indirilebilir bir pakettir. Azure Dosya Senkronizasyonu aracısının üç ana bileşeni vardır:
FileSyncSvc.exe: Sunucu uç noktalarındaki değişikliklerin izlenmesinden ve Azure’ a eşitleme oturumlarının başlatılmasından sorumlu arka plan Windows hizmeti.
StorageSync.sys: Azure File Sync file system filter olarak geçer ve eğer cloud tiering özelliği açık ise dosyaların hot veya cool olarak filtrelenmesi işleminden sorumludur.
PowerShell management cmdlets: Son bileşeni ise Microsoft.StorageSync kaynak sağlayıcıyla etkileşimde bulunmak için kullandığınız PowerShell cmdlet’leridir ki bunları aşağıdaki (varsayılan) konumlarda bulabilirsiniz:
C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.PowerShell.Cmdlets.dll
C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll
Server endpoint
Kayıtlı bir sunucu üzerindeki belirli bir konumu temsil eder. Yani üst kısımda registered server olarak ifade ettiğimiz bir sunucunun dosya sunucunuz olduğunu düşünün. Bu dosya sunucusu üzerindeki D:\
E:\ veya F:\SQLYedek gibi eşitlenmesini istediğini klasörleri tanımladığınız kısım Server endpoint olarak geçmektedir.
Çakışma olmadığı sürece bir sunucu üzerinde birden çok endpoint tanımlanabilir.
Sadece kaldırılamayan yani Türkçesi belki garip gelebilir çünkü sürekli kullandığımız bir tabi değil ama sadece non-removable birimler desteklenir. Uzak bir paylaşımdan eşlenen sürücüler Server endpoint olarak tanımlanamaz.
Hemen aklınıza sistem diskini eşitleme için endpoint olarak gösterebilir miyim gibi bir soru gelebilir. Evet gösterebilirsiniz ancak iki limitasyon ile;
Cloud tiering özelliğini kullanamazsınız.
Rapid namespace restore olarak isimlendirdiğimiz kötü durum senaryolarında hızlı geri dönüş için kullandığımız bu özelliği de kullanamazsınız. Bu özellik için ayrı bir makale yazacağım.
Eğer eklediğiniz lokasyondaki dosyalar ile file sync group içerisindeki diğer endpoint lokasyonu aynı olur ise bu durumda dosyalar birleştirilir.
Cloud endpoint
Cloud endpoint, senkronizasyon grubunun ( Sync Group) bir parçası olan Azure dosya paylaşımıdır (Azure File Share). Azure File Share sadece bir tane cloud endpoint’ e üye olabilir. Bundan dolayı azure file share sadece bir tane sync group’ a üye olabilir.
Eğer bir sync group içerisine mevcut bir azure file share cloud endpoint olarak eklenir ise, sync group içerisinde yer alan diğer dosyalar ile eklenen dosyalar birleştirilir.
Cloud tiering
Agent sayesinde dosya sunucularınız üzerinde en çok kullanılan ve yine en az kullanılan dosyalar hot ve cool olarak işaretlenmektedir. Azure File Sync servisindeki endpoint ayarlarında belirttiğiniz % değerine göre ilgili dizin içerisinde boş yer açmaya çalışır. Örneğin cloud tiering için %20 değerini verdiniz ve 1TB’ lık bir disk gösterdiniz. Disk üzerinde %20 boş alan açılana kadar eski verileri azure file sync servisi ile azure file share’ a alır. Bu sayede disk üzerinde yer açılmış olur. En sık kullandığınız dosyaları on-premdeki sunucu üzerinde eski dosyaları ise bulut üzerinden çağırabilirsiniz.
Peki temel kavramları öğrendiysek artık kurulumlara başlayabiliriz.
Öncelikle büyük bir projeye başlıyorsanız eğer bu konuda size tavsiyem “Azure File Sync evaluation” aracını kullanarak mevcut alt yapınızın azure file sync için hazır olup olmadığını kontrol edin.
Not: Azure file sync şu anda Server 2012, 2016 ve 2019 desteklemektedir. 2008 desteklemediği gibi planda da böyle bir şey yoktur. Ancak zaman ne gösterir bilemeyiz.
Peki bu aracı nasıl kullanıyoruz;
Not: Aşağıdaki komut setleri için öncelikle AzureRM yüklemeniz gereklidir.
https://docs.microsoft.com/en-us/powershell/azure/install-azurerm-ps?view=azurermps-6.12.0
Install-Module -Name PackageManagement -Repository PSGallery -Force
Install-Module -Name PowerShellGet -Repository PSGallery -Force
Daha sonra powershell konsolunu kapatıp tekrar açıyoruz ve module yüklemesini yapıyoruz
Install-Module -Name AzureRM.StorageSync -AllowPrerelease
Aşağıdaki komut ile sync etmek istediğimiz path + sistem kontrolü yapabilirsiniz
Invoke-AzureRmStorageSyncCompatibilityCheck -Path F:\
Burada gördüğünüz gibi temelde bu path içerisindeki iki dosya desteklenen dosya boyutundan büyük. Ek olarak ReFS dosya sistemi ile formatlandığı için bu zaten desteklenmiyor.
Şimdi bu ürünü kullanarak makale yazmanın bir güzelliği bu olsa gerek. Burada 100GB üstü dosyaların desteklenmediği yazıyor gördüğünüz gibi, ancak ben bu sunucudan ortalama boyutları 600GB üstü komple sanallaştırma sistemi imaj yedeklerini taşıdım. Yani neden böyle bir uyarı verdiğini açıkçası bilmiyorum ama böyle bir limit yok. Düşüncem ise muhtemel ürün henüz GA olmadan önce böyle bir limit vardı ancak şu anda ben sorunsuz tek bir dosya olarak 600GB+ taşıdım. Ama 700GB lık tek dosya hiç denemedim.
Örneğin C için denediğimde hiçbir sorun görünmüyor
Ancak sadece NTFS desteği olması şu anda biraz kötü. Fakat sektörde bizler gibi teknoloji çok çok yakından takip edebilen şirket çok olmadığı için bu şu anda şirketler için bir sorun değil bence. Tahminim zaten yakın zamanda bu konuda da destek gelecektir. Çünkü özellikle sınıflandırma işleminde sınıflandırılmış veriler dosya sunucularımızdan kopyalanamıyordu. Ancak azure file sync agent 3.0.12.0 ve üstü sürümde artık sınıflandırılmış ve azure ortamına atılmış cool dosyaların sunucu dışına kopyalanması durumunda azure’ dan bu dosyalar geri çağırılmaktadır.
Ya da bir parametre ile bundan sonra sadece path kontrolü için aşağıdaki komut setini kullanabiliriz
Invoke-AzureRmStorageSyncCompatibilityCheck -Path F:\ -SkipSystemChecks
Ya da sadece sistem kontrolü yapabilirsiniz
Invoke-AzureRmStorageSyncCompatibilityCheck -ComputerName cozumpark
Eğer path noktasında özellikle isim ile ilgili sorunlar çok ise bunu csv olarak almanızda fayda var;
Peki bu gereksinimleri çözdüyseniz eğer devam edelim.
Hangi dosyaları varsayılan olarak eşitlemiyor;
Windows Server Failover cluster desteği senaryo bazlı bulunmaktadır. Eğer cluster kurulumunu “File Server for general use” şeklinde yaparsanız her iki node üzerinde azure file sycn agent kurmanız yeterlidir. Ancak kurulumu “Scale-Out File Server for application data” (SOFS) veya Clustered Shared Volumes (CSVs) üzerinde yaparsanız desteklenmemektedir.
Veri tekilleştirme desteği yer alıyor mu?
Eğer tiering açık değil ise kullandığınız file server üzerinde data dedplication açık olması sorun değil. Ancak cloud tiering yapılacak ise bu durumda dedup desteklenmemektedir.
DFS Namespace DFS-N ve DFS replication DFS-R desteği bulunmaktadır. Yani bu ortamlar ile beraber kullanabiliyoruz. Sadece DFS-R aslında Azure file sync ile aynı işi gördüğü için önerimiz DFS-R dan azure file sync e geçiş yapmanızdır.
Eğer azure file sync agent yüklü makineye sysprep yaparsanız ne yazık ki terkar registration yapmanız gereklidir.
Cloud tiering açık ise Windows server search indeks bu dosyaları indeksleyemez.
Gelelim yine çok önemli konulardan birine, anti virüs. Hemen hemen piyasadaki pek çok üretici offline çalışma mantığını bildiği için sorunsuz bir şekilde bu tarz dosyalar için ( offline attiribute olan ) tarama işleminden harici tutabiliyor. Aksi halde bu dosyaların her taramada tekrar sunucuya indirilmesi sunucu ve internet performansı için tavsiye edilen bir özellik değildir.
Aşağıdaki ürünler ile sorunsuz bir şekilde Azure file sync uygulamasını kullanabilirsiniz. Ancak her uygulama için bu özelliği yani offline file mantığını tarama dışı bırakacak seçeneği seçmeniz gerekli.
· Windows Defender
· System Center Endpoint Protection (SCEP)
· Symantec Endpoint Protection
· McAfee EndPoint Security
· Kaspersky Anti-Virus
· Sophos Endpoint Protection
· TrendMicro OfficeScan
Benzer durum yedekleme çözümleri içinde geçerli olup on-prem yedekleme çözümleri yine dosyaları indirmek isteyecektir. Bunun için tavsiyemiz şu anda cloup backup çözümleri. Ancak aynı anti virüslerde olduğu gibi yakında on prem yedekleme yazılımlarında da böyle özellikleri görebileceğiz.
Bir diğer önemli konu ise şifrelenmiş dosyalar. Tabiki kendi teknolojilerini destekliyor;
BitLocker encryption
Azure Information Protection, Azure Rights Management Services (Azure RMS), ve Active Directory RMS
Ancak NTFS Encrypted File System (EFS) desteklenmemektedir.
Bir diğer önemli başlık ise firewall. Malum kurumsal şirketlerin tamamında neredeyse sunucu ve istemci tarafında ayrımlar, sunucuların internete çıkışındaki engellemeleri düşünürsek bu servis için gerekli olan yapılandırmaları da paylaşmakta fayda var.
Öncelikli olarak sunucunun Azure veri merkezilerine 443 nolu porttan çıkması şart. Azure veri merkezi ip adreslerine aşağıdaki xml dosyasından ulaşabilirsiniz
https://www.microsoft.com/en-us/download/details.aspx?id=41653
443 nolu portun dışında bir de Proxy şartı olabilir. Yani sunucularınız Proxy ile internete çıkmaz zorunda ise aşağıdaki PS komutu ile azure file sync agent’ a bu durumu öğretebilirsiniz
Import-Module “C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll”
Set-StorageSyncProxyConfiguration -Address< url> -Port <port number> -ProxyCredential <credentials>
Eğer makine bazlı Proxy kullanıyorsanız durum biraz daha karışık olup bu linki inceleyebilirsiniz
https://docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-firewall-and-proxy
Evet makalemin bu bölümünün de sonuna geldik. Umarım faydalı bir makale olmuştur. Makalemin devamında Azure File oluşturulması ve Azure File Sync servisinin kurulumunu anlatacağım.
Bir sonraki makalemde görüşmek üzere.
Kaynak
https://docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-planning