14 Şubat 2013

Azure Blob Storage'da Page Blob - Block Blob Farkları


Windows Azure storage konseptleri arasında doğrudan çalışabilirlik ve performansa ciddi bir etken olduğu için, temel olarak bilinmesi gereken kavramlardan biri Bloblardır diyebilirim. Bu yazıda Blob'lar hakkında kısa ve fakat pratik bir kaç notu paylaşmak istiyorum.

Blob Nedir?
BLOB, Binary Large Object kavramının kısaltmasıdır.  Yani blob bir çok ikili(binary) verinin tek bir birimde toplanmasıdır diyebiliriz.

Windows Azure Blob ,Windows Azure Storage hizmetlerinin parçalarından birisidir ve Azure üzerinde metin ve ikili(binary) veri depolamanın en basit yoludur.

Azure Blob Depolama iki farklı blob çeşidinden oluşmaktadır:
1.     Block Blob
2.     Page Blob

Block Blob
Block blob her biri bir blockID'ye sahip block'lardan oluşur. Block blob'lar sıklıkla ağ üzerinden büyük dosyaları yönetirken kullanılmaktadır. Block blobları paralel olarak eş zamanlı upload ederek upload zamanını düşürebilirsiniz. Son olarak en büyük block büyüklüğü 4MB olduğunu da belirtmeliyim.

Page Blob 
Page blob 512 bytelık sayfaların bir toplamıdır. Page blob'ı eğer kullanıcı rastgele okuma yazma işlemi yapacağı zaman kullanabilirsiniz.

Page Blob ve Block Blob'u Nerelerde Kullanabilirsiniz? 
Bu konuyu daha iyi anlatabilmek için bir senaryo üzerinden gidersek: Diyelim ki biz medya dosyalarını depolamak için bir uygulama geliştireceğiz. Bu durumda medya dosyaları sanal makina için bir VHD ve video dosyalarını bir arada içerecektir. Peki hangi içerik için hangi blob depolama türünü kullanacağım ?


Yukarıdaki tanımlardan gidersek oldukça kolay bir şekilde cevaplayabiliriz. VHD bir sanal makina olacağı ve çok yoğun bir şekilde okuma yazma işlemleri içerdiği için page blob olmalıdır (burada bir öneri olarak değil bir zorunluluk olarak söylüyorum eğer VHD'niz page blob değil de block blob ise Azure üzerinde bir makinaya takıp boot edemezsiniz). Diğer taraftan da video dosyaları büyüklükleri upload avantajı düşünülerek Block blob şeklinde ayarlanmalıdır.

11 Şubat 2013

AWS'de 30 GB'den Büyük C Diskli Windows Oluşturmak

Konu Double-Take olunca hedef sunucu olarak Windows Azure dışında başka Cloud platformlarını da denemek gereksinim haline geliyor. İşte bu nedenle Windows Azure'dan sonra yine en az Azure kadar yaygın kullanılan (belki çok daha yaygın) Amazon Web Services'in IaaS hizmeti olan Elastic Compute Cloud (EC2) u denemeye başladım. 

Test için kullanacağım kaynak sunucum 90 Gb C: diski ve 250 Gb D: diski olan bir Windows 2008 R2 olduğu için Double-Take Full Server Failover senaryosuna göre hedefinde en azından bu iki drive'a sahip olması ve hedefteki bu iki drive'ın içindeki verileri alabilecek büyüklüğe sahip olması gerekiyordu. Ancak AWS'de var olan Windows 2008R2 Image'leri (AMI) sadece 30 GB bir C: diskine sahipti. 

Bu durumda C: diskini nasıl büyüteceğim konusunda neler yapabileceğimi araştırdığımda zaman içinde bu sorunla pek çok kişinin karşılaştığını ancak AWS tarafında bu sorunun çözümünün oldukça kolay ve kısa sürede yapılabilir olduğunu gördüm. Eğer sizin de bir gün böyle bir şey ihtiyacınız olursa aşağıdaki adımları uygulayarak varsayılan 30 GB'dan büyük bir C: diskine sahip olabilirsiniz.



  1. Öncelikle diskini büyüteceğiniz makinayı kapatın.
  2. AWS Console'dan Volumes bölümüne gidip 30 GB'lik volume'ü seçip sağ tıklayın ve snapshot alın.
  3. Snaphots bölümüne gidip oluşturduğunuz Snapshot'a sağ tıklayın ve Create a volume from the snapshot seçeneğini seçip daha büyük bir boyut (örn: 100 Gb) yazın ve yeni büyük bir volume oluşturun.
  4. Volumes bölümüne tekrar dönüp küçük diski (30 Gb) seçin ve sağ tıklayıp detach edin.
  5. Şimdi büyük olan diske (100 Gb) sağ tıklayın ve ilgili makinaya Attach edin.
  6. Sonrasında Instances bölümüne gidip makinayı açın
  7. Ve son olarak Denetim Masasından  Disk Management aracını açıp diski genişletin.

10 Şubat 2013

Windows Azure ve Yenilikler

Daha önce adını sanını çok duyup ancak sadece Microsoft'un Bulut platformu diye bildiğim Windows Azure ile; Microsoft ve Double-Take arasında bir iş birliği imkanı sayesinde 2012 Kasım ve Aralık aylarında çok daha yakından tanışma imkanı bulmuştum. Microsoft ile birlikte Double-Take'in Azure ortamında iş sürekliliği ve felaketten kurtarma demosu yapmak için kolları sıvadığımda Azure'un güzel yönlerini ve geliştirilmesi gereken eksik yönlerini uygulamalı bir şekilde görmüş oldum. (Bu demoyu hazırlarken öğrendiğim önemli noktaları bir ya da bir kaç yazıda toparlayıp yine not olması açısından buraya koyacağım).

Burada şunu söylemeliyim Windows Azure PaaS denilen platformun bir servis olarak verildiği Bulut Bilişim alanında gerçekten pek çok rakibinden çok daha iyi bir durumda. Tabii özellikle .NET ve SQL Server tabanlı geliştirme ortamlarında rakipsiz desek yeri var. Buna karşın özellikle IaaS denilen altyapının servis olarak verildiği alanda ise benim Microsoft'un tek gerçek rakibi olarak gördüğüm Amazon Web Services'e göre daha bir miktar geride. Zaten Microsoft  da sanırım bunu kabul ediyor ki bu hizmetler şu an Azure Management Console'da Preview aşamasında görüntüleniyor.

Buna bağlı olarak Microsoft Windows Azure platformuna her geçen gün yeni özellikler ekleyerek geliştirmeye devam ediyor. Bu geliştirmelerin en yüklüsü 2012 Aralık ayı sonunda Microsoft'un Azure ekibinin başında olan  Scott Guthrie'nin blogunda ayrıntılı bir şekilde duyuruldu. Bu geliştirmeleri aşağıda sıraladım.


  • Mobil Servisler (görev zamanlayıcı desteği,Avrupa bölgesi desteği, komut satırı desteği)
  • Web Siteleri (ölçekleme iyileştirmeleri, entegre kaynak kontrolü)
  • SQL Data Sync (yeni HTML portalde destekleniyor)
  • ACS Yönetimi (yeni HTML portalde destekleniyor)
  • Medya Servisleri (iş ve görev yönetimi, blob depolama desteği, ayrılmış bilgi işlem gücü)
  • Sanal Ağ geliştirmeleri
  • Abonelik Filtreleme Desteği
  • Windows Azure Store (şimdi daha pek çok ülkeden ulaşılabilir)
Bu geliştirmeler arasında benim en kayda değer gördüğüm Sanal Ağ seçeneklerinin biraz daha basitleştirilmesini sağlayan Quick Create seçeneği. Bu özellikle pek çok kişi ile birlikte benim de bir miktar karışık bulduğum ayarlamalara bir kolaylık getirmiş Microsoft.

Azure Virtual Network