Azure sayfa bloblarına genel bakış

Azure Depolama üç tür blob depolama alanı sunar: Blok Blobları, Ekleme Blobları ve sayfa blobları. Blok blobları bloklardan oluşur ve metin veya ikili dosyaları depolamak ve büyük dosyaları verimli bir şekilde karşıya yüklemek için idealdir. Ekleme blobları da bloklardan oluşur, ancak ekleme işlemleri için iyileştirildiğinden günlük senaryoları için idealdir. Sayfa blobları, toplam boyutu 8 TB'a kadar olan 512 baytlık sayfalardan oluşur ve sık sık rastgele okuma/yazma işlemleri için tasarlanmıştır. Sayfa blobları, Azure IaaS Disklerinin temelini oluşturur. Bu makale, sayfa bloblarının özelliklerini ve avantajlarını açıklamaya odaklanır.

Sayfa blobları, rastgele bayt aralıklarını okuma/yazma olanağı sağlayan 512 baytlık sayfalardan oluşan bir koleksiyonlardır. Bu nedenle sayfa blobları, Sanal Makineler ve Veritabanları için işletim sistemi ve veri diskleri gibi dizin tabanlı ve seyrek veri yapılarını depolamak için idealdir. Örneğin Azure SQL DB, veritabanları için temel kalıcı depolama alanı olarak sayfa bloblarını kullanır. Ayrıca, sayfa blobları genellikle Aralık Tabanlı güncelleştirmeleri olan dosyalar için de kullanılır.

Azure sayfa bloblarının temel özellikleri REST arabirimi, temel depolamanın dayanıklılığı ve Azure'a sorunsuz geçiş özellikleridir. Bu özellikler sonraki bölümde daha ayrıntılı olarak ele alınıyor. Ayrıca Azure sayfa blobları şu anda iki tür depolama alanında desteklenmektedir: Premium Depolama ve Standart Depolama. Premium Depolama, tutarlı yüksek performans ve düşük gecikme süresi gerektiren iş yükleri için özel olarak tasarlanmıştır ve premium sayfa blobları yüksek performanslı depolama senaryoları için idealdir. Standart depolama hesapları, gecikme süresine duyarlı olmayan iş yüklerini çalıştırmak için daha uygun maliyetlidir.

Kısıtlamalar

Sayfa blobları yalnızca Sık Erişimli erişim katmanını kullanabilir, Seyrek Erişim veya Arşiv katmanlarını kullanamaz. Erişim katmanları hakkında daha fazla bilgi için bkz . Blob verileri için Sık Erişimli, Seyrek Erişimli ve Arşiv erişim katmanları.

Örnek kullanım örnekleri

Şimdi Azure IaaS Diskleri ile başlayan sayfa blobları için birkaç kullanım örneğini ele alalım. Azure sayfa blobları, Azure IaaS için sanal diskler platformunun omurgasını oluşturur. Hem Azure işletim sistemi hem de veri diskleri, verilerin Azure Depolama platformunda kalıcı olarak kalıcı hale geldiği ve ardından en yüksek performans için sanal makinelere teslim edildiği sanal diskler olarak uygulanır. Azure Diskleri Hyper-V VHD biçiminde kalıcı hale getirilir ve Azure Depolama'da sayfa blobu olarak depolanır. Sayfa blobları, Azure IaaS VM'leri için sanal disklerin kullanılmasına ek olarak, şu anda SQL verilerini depolamak için sayfa blobları kullanan Azure SQL DB hizmeti gibi PaaS ve DBaaS senaryolarını da etkinleştirir ve veritabanı için hızlı rastgele okuma-yazma işlemlerini etkinleştirir. Başka bir örnek, ortak video düzenleme uygulamaları için paylaşılan medya erişimine yönelik bir PaaS hizmetiniz varsa sayfa blobları medyadaki rastgele konumlara hızlı erişim sağlar. Aynı medyanın birden çok kullanıcı tarafından hızlı ve verimli bir şekilde düzenlenmesini ve birleştirilmesini de sağlar.

Azure Site Recovery, Azure Backup gibi birinci taraf Microsoft hizmetleri ve birçok üçüncü taraf geliştirici, sayfa blobu REST arabirimini kullanarak sektör lideri yenilikler uygulamaktadır. Azure'da uygulanan benzersiz senaryolardan bazıları şunlardır:

  • Uygulama tarafından yönlendirilen artımlı anlık görüntü yönetimi: Uygulamalar, verilerin yüksek maliyetli bir şekilde yinelenmesine neden olmadan uygulama denetim noktalarını kaydetmek için sayfa blobu anlık görüntülerinden ve REST API'lerinden yararlanabilir. Azure Depolama, tüm blobu kopyalamayı gerektirmeyen sayfa blobları için yerel anlık görüntüleri destekler. Bu genel anlık görüntü API'leri, anlık görüntüler arasındaki deltalara erişmeyi ve bunları kopyalamayı da etkinleştirir.
  • Uygulama ve verilerin şirket içinden buluta dinamik geçişi: Şirket içi vm çalışmaya devam ederken şirket içi verileri kopyalayın ve REST API'leri kullanarak doğrudan bir Azure sayfa blob'una yazın. Hedef yakalandıktan sonra, bu verileri kullanarak Azure VM'ye hızlı bir şekilde yük devretme yapabilirsiniz. Bu şekilde, vm'yi kullanmaya devam ederken arka planda veri geçişi gerçekleştiğinden ve yük devretme için gereken kapalı kalma süresi kısa (dakika cinsinden) olduğundan, vm'lerinizi ve sanal disklerinizi şirket içinden buluta en düşük kapalı kalma süresiyle geçirebilirsiniz.
  • Eşzamanlılık denetimi desteğiyle birden çok okuyucu ve tek yazıcı gibi senaryolara olanak tanıyan SAS tabanlı paylaşılan erişim.

Yönetilmeyen diskler kullanımdan kaldırılıyor ayrıntılar için bkz . Azure yönetilmeyen disklerinizi 30 Eylül 2025'e kadar geçirme.

Fiyatlandırma

Sayfa bloblarıyla sunulan her iki depolama türünün de kendi fiyatlandırma modeli vardır. Premium sayfa blobları yönetilen diskler fiyatlandırma modelini izlerken, standart sayfa blobları kullanılan boyuta ve her işlemle faturalandırılır. Daha fazla bilgi için bkz . Azure Sayfa Blobları fiyatlandırma sayfası.

Sayfa blobu özellikleri

REST API

Sayfa bloblarını kullanarak geliştirmeye başlamak için aşağıdaki belgeye bakın. Örnek olarak, .NET için Depolama İstemci Kitaplığı'nın kullanıldığı sayfa bloblarına erişmeye bakın.

Aşağıdaki diyagramda hesap, kapsayıcılar ve sayfa blobları arasındaki genel ilişkiler açıklanmaktadır.

Hesap, kapsayıcılar ve sayfa blobları arasındaki ilişkileri gösteren ekran görüntüsü

Belirtilen boyutta boş sayfa blobu oluşturma

İlk olarak bir kapsayıcıya başvuru alın. Sayfa blobu oluşturmak için GetPageBlobClient yöntemini çağırın ve ardından PageBlobClient.Create yöntemini çağırın. Oluşturulacak blob için en büyük boyutu geçirin. Bu boyut 512 baytın katı olmalıdır.

long OneGigabyteAsBytes = 1024 * 1024 * 1024;

BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

var blobContainerClient =
    blobServiceClient.GetBlobContainerClient(Constants.containerName);

var pageBlobClient = blobContainerClient.GetPageBlobClient("0s4.vhd");

pageBlobClient.Create(16 * OneGigabyteAsBytes);

Sayfa blobu yeniden boyutlandırma

Oluşturulduktan sonra sayfa blobunu yeniden boyutlandırmak için Resize yöntemini kullanın. İstenen boyut 512 baytlık bir kat olmalıdır.

pageBlobClient.Resize(32 * OneGigabyteAsBytes);

Sayfa blob'larına sayfa yazma

Sayfa yazmak için PageBlobClient.UploadPages yöntemini kullanın.

pageBlobClient.UploadPages(dataStream, startingOffset);

Bu, 4 MB'a kadar sıralı bir sayfa kümesi yazmanızı sağlar. Yazılmakta olan uzaklık 512 baytlık bir sınırda (startOffset % 512 == 0) başlamalı ve 512 sınırında bitmelidir - 1.

Sıralı bir sayfa kümesi için yazma isteği blob hizmetinde başarılı olur ve dayanıklılık ve dayanıklılık için çoğaltılırsa, yazma işlemi tamamlanır ve başarı istemciye geri döndürülür.

Aşağıdaki diyagramda 2 ayrı yazma işlemi gösterilmektedir:

İki ayrı yazma seçeneğini gösteren diyagram.

  1. 1024 bayt uzunluğundaki 0 uzaklığından başlayan bir Yazma işlemi
  2. 1024 uzunluğunun 4096 uzaklığından başlayan yazma işlemi

Sayfa blobundan sayfaları okuma

Sayfaları okumak için PageBlobClient.Download yöntemini kullanarak sayfa blobundan bir bayt aralığı okuyun.

var pageBlob = pageBlobClient.Download(new HttpRange(bufferOffset, rangeSize));

Bu, blobun herhangi bir uzaklığından başlayarak tam blobu veya bayt aralığını indirmenize olanak tanır. Okurken, uzaklık 512'nin katıyla başlamak zorunda değildir. NUL sayfasından bayt okurken hizmet sıfır bayt döndürür.

Aşağıdaki şekilde, 256 uzaklığı ve aralık boyutu 4352 olan bir Okuma işlemi gösterilmektedir. Döndürülen veriler turuncu renkle vurgulanır. NUL sayfaları için sıfırlar döndürülür.

256 uzaklığı ve 4352 aralık boyutuyla Okuma işlemini gösteren diyagram

Seyrek doldurulmuş bir bloba sahipseniz, sıfır bayt çıkışını ödemekten kaçınmak ve indirme gecikmesini azaltmak için geçerli sayfa bölgelerini indirmeniz gerekebilir.

Hangi sayfaların veri tarafından yedeklendiğini belirlemek için PageBlobClient.GetPageRanges kullanın. Daha sonra döndürülen aralıkları numaralandırabilir ve her aralıktaki verileri indirebilirsiniz.

IEnumerable<HttpRange> pageRanges = pageBlobClient.GetPageRanges().Value.PageRanges;

foreach (var range in pageRanges)
{
    var pageBlob = pageBlobClient.Download(range);
}

Sayfa blobu kiralama

Kira Blobu işlemi, yazma ve silme işlemleri için blob üzerinde kilit oluşturur ve yönetir. Bu işlem, bir sayfa blobunun birden çok istemciden erişildiği senaryolarda, bloba aynı anda yalnızca bir istemcinin yazabilmesini sağlamak için kullanışlıdır. Örneğin Azure Diskler, diskin yalnızca tek bir VM tarafından yönetildiğinden emin olmak için bu kiralama mekanizmasını kullanır. Kilit süresi 15-60 saniye veya sonsuz olabilir. Daha fazla ayrıntı için buradaki belgelere bakın.

Sayfa blobları, zengin REST API'lerine ek olarak paylaşılan erişim, dayanıklılık ve gelişmiş güvenlik de sağlar. Bu avantajları sonraki paragraflarda daha ayrıntılı olarak ele alacağız.

Eşzamanlı erişim

Sayfa blobları REST API'sini ve kiralama mekanizması, uygulamaların sayfa blobunu birden çok istemciden erişmesini sağlar. Örneğin, depolama nesnelerini birden çok kullanıcıyla paylaşan bir dağıtılmış bulut hizmeti oluşturmanız gerektiğini varsayalım. Çeşitli kullanıcılara büyük bir görüntü koleksiyonu sunan bir web uygulaması olabilir. Bunu uygulamak için bir seçenek, bağlı diskleri olan bir VM kullanmaktır. Bunun dezavantajları şunlardır: (i) bir diskin yalnızca tek bir VM'ye bağlanabilmesi kısıtlaması, böylece ölçeklenebilirliği, esnekliği ve artan riskleri sınırlandırır. VM veya VM üzerinde çalışan hizmetle ilgili bir sorun varsa, kiralama nedeniyle, kira süresi dolana veya bozulana kadar görüntüye erişilemez; ve (ii) IaaS VM'sine sahip olmanın ek maliyeti.

Alternatif bir seçenek de sayfa bloblarını doğrudan Azure Depolama REST API'leri aracılığıyla kullanmaktır. Bu seçenek, yüksek maliyetli IaaS VM'lerine olan ihtiyacı ortadan kaldırır, birden çok istemciden doğrudan erişim için tam esneklik sunar, disk ekleme/ayırma gereksinimini ortadan kaldırarak klasik dağıtım modelini basitleştirir ve VM'de sorun riskini ortadan kaldırır. Ayrıca, rastgele okuma/yazma işlemleri için diskle aynı performans düzeyini sağlar

Dayanıklılık ve yüksek kullanılabilirlik

Hem standart hem de premium depolama, dayanıklılık ve yüksek kullanılabilirlik sağlamak için sayfa blobu verilerinin her zaman çoğaltıldığı dayanıklı depolama alanıdır. Azure, IaaS diskleri ve sayfa blobları için sürekli olarak kurumsal düzeyde dayanıklılık ve endüstri lideri yüzde sıfır Yıllık Hata Oranı sağlar.

Standart ve premium depolama hesapları için Azure Depolama yedekliliği hakkında daha fazla bilgi için bkz . Azure Depolama yedekliliği ve özellikle şu iki bölüm:

Azure'a sorunsuz geçiş

Azure, kendi özelleştirilmiş yedekleme çözümünü uygulamak isteyen müşteriler ve geliştiriciler için yalnızca değişimleri barındıran artımlı anlık görüntüler de sunar. Bu özellik, ilk tam kopyanın maliyetini önler ve bu da yedekleme maliyetini büyük ölçüde düşürür. Fark verilerini verimli bir şekilde okuma ve kopyalama özelliğinin yanı sıra, bu özellik geliştiricilerden daha da fazla yeniliğe olanak tanıyan ve Azure'da sınıfının en iyisi yedekleme ve olağanüstü durum kurtarma (DR) deneyimine yol açan bir diğer güçlü özelliktir. Azure'da VM'leriniz için kendi yedekleme veya DR çözümünüzü, Sayfa Aralıklarını Al API'sinin ve DR'nin artımlı verilerini kolayca kopyalamak için kullanabileceğiniz Artımlı Kopyalama Blobu API'sinin yanı sıra Blob Anlık Görüntüsü'nü kullanarak ayarlayabilirsiniz.

Ayrıca birçok kuruluş, şirket içi veri merkezlerinde çalışan kritik iş yüklerine sahiptir. İş yükünü buluta geçirmek için en önemli sorunlardan biri, verilerin kopyalanması için gereken kapalı kalma süresi miktarı ve geçiş sonrasında öngörülemeyen sorunlar riskidir. Çoğu durumda kapalı kalma süresi, buluta geçiş için bir gösterici olabilir. Azure, sayfa blobları REST API'sini kullanarak kritik iş yüklerinde en az kesintiyle bulut geçişini etkinleştirerek bu sorunu giderir.

Anlık görüntü alma ve bir sayfa blobunu anlık görüntüden geri yükleme hakkında örnekler için lütfen artımlı anlık görüntüleri kullanarak yedekleme işlemi ayarlama makalesine bakın.