İçeriğe atla
HexaTransfer
Bloga dön
Bulut ve depolama

Object Depolama ve Block Depolama: Hangisi Daha İyi?

Dosya transferi uygulamaları için object ve block depolamayı karşılaştırın. Performans, maliyet, ölçeklenebilirlik ve kullanım senaryosu analizi.

Object depolama; kullanıcı tarafından yüklenen dosyalar, statik varlıklar, yedeklemeler ve arşivler için — HTTP üzerinden eriştiğiniz ve nadiren yerinde değiştirdiğiniz her şey için — kazanır. Block depolama; düşük gecikmeli rastgele yazma ihtiyacı olduğunda kazanır: veritabanları, önyükleme hacimleri, yüksek işlem dosya sistemleri. Dosya transferi iş yükleri için özellikle object depolama neredeyse her zaman doğru seçimdir; yatay olarak ölçeklenir, block'un GB/ay başına 5-9 TL'sine kıyasla 1-1,50 TL/GB/ay maliyetlidir ve yeniden bölümlendirme gerektirmeden petabayt ölçekli kovalara ulaşır.

Arka Planda Gerçekte Nasıl Farklılaşırlar

Block depolama, işletim sisteminin ext4, XFS veya NTFS ile biçimlendirdiği ham bir cihazı (LUN veya EBS hacmi) açığa çıkarır. Okuma ve yazma işlemleri iSCSI, NVMe-oF veya SCSI üzerinden sabit boyutlu bloklarda (genellikle 4 KB veya 16 KB) gerçekleşir. İşletim sistemi dosya sistemine sahiptir; block cihazı dosyalar hakkında hiçbir şey bilmez, yalnızca offsetler.

Object depolama, her nesnenin bir anahtara, baytlara ve metadata'ya sahip olduğu bir HTTP API'sini (S3, Azure Blob, GCS) açığa çıkarır. Altında dosya sistemi yoktur — nesneler PUT ve GET ile bütün olarak ele alınan atomik birimlerdir. Yazma işlemleri yeni sürümler üretir; 2 GB'lık bir nesnenin 1.000.000. baytını tüm nesneyi yeniden yazmadan değiştiremezsiniz. Bu değişmezlik bir özelliktir: block depolamanın kolayca karşılayamadığı çok bölgeli çoğaltma, sürümleme ve yaşam döngüsü kurallarını mümkün kılar.

Hızlı Karşılaştırma

| Boyut | Object Depolama | Block Depolama | |-------|-----------------|----------------| | Tipik API | S3 HTTP REST | POSIX + iSCSI/NVMe | | Maliyet (AWS sıcak katman) | 0,023 USD/GB/ay | 0,08 USD/GB/ay (gp3) | | Maksimum tek birim | Nesne başına 5 TB | EBS hacmi başına 64 TiB | | Gecikme | 10-100 ms | Milisaniyenin altı | | Eş zamanlı okuyucular | Sınırsız | Aynı anda bir ana bilgisayar (genellikle) | | Dayanıklılık iddiası | 11 dokuz (S3) | 5-6 dokuz (EBS) | | İyi olduğu şey | Dosyalar, medya, yedekler | Veritabanları, önyükleme diskleri | | Kötü olduğu şey | Büyük dosyalara rastgele yazma | Tek hacmin ötesinde yatay ölçek |

Verimlilik ve Gecikme: Farklı Kazananlar

gp3 EBS hacmi 4 KB'lık okumalara 1 ms'nin altında yanıt verir; aynı 4 KB için S3 GET, bölgeye bağlı olarak 20-80 ms sürer. Saniyede 5.000 işlem gerçekleştiren bir PostgreSQL yazma öncesi günlüğü için bu gecikme farkı yıkıcıdır. 500 MB'lık bir .zip dosyasını indiren kullanıcı için ilk bayt gecikmesi aktarım hızının arkasında kaybolduğundan ilgisizdir.

Sıralı aktarım hızında object depolama ölçekte genellikle kazanır. S3, ön ek başına 5.500 GET isteği/saniye ile tek bir kovaya hizmet edebilir ve istek hızı bölümlendirme (hash ön ekli anahtarlar) ile bu on binlere çıkar. Tek bir gp3 hacmi 1.000 MB/s ve 16.000 IOPS ile sınırlanır. 10 GB'lık dosyayı eş zamanlı indiren on kullanıcı için object depolama bağlantılarını doyurur; block depolama darboğaz haline gelir.

Ölçekte Maliyet

100 TB soğukça medya için:

  • S3 Standard: 2.300 USD/ay
  • S3 Standard-IA: 1.250 USD/ay
  • S3 Glacier Instant Retrieval: 400 USD/ay
  • S3 Glacier Deep Archive: 99 USD/ay
  • EBS gp3: 8.000 USD/ay
  • EBS st1 (aktarım hızı optimize edilmiş HDD): 4.500 USD/ay

Block depolama katmanlanmaz. Yılda bir dokunduğunuz veriler için zirve erişim fiyatı ödersiniz. Object depolama yaşam döngüsü kuralları nesneleri otomatik olarak taşır: 30 gün sıcak, 60 gün Standard-IA, 90 günden sonra Glacier. 7 günlük son kullanma süresine sahip yüklemeleri depolayan bir dosya transfer servisi için Expiration kuralına sahip object depolama, EBS destekli bir sunucu çalıştırmaktan dramatik şekilde daha ucuzdur.

Tutarlılık ve Eş Zamanlılık

S3 artık globalde PUT'lar ve DELETE'ler için güçlü okuma-sonrası-yazma tutarlılığı sağlar. Azure Blob ve GCS eşleşir. Bu, object depolamaya yönelik tarihsel eleştirilerden birini ortadan kaldırdı — eskiden yeni yüklenen bir dosyanın birkaç saniye 404 döndürdüğü "sonunda tutarlılık" sürprizleri yaşanırdı.

Ancak eş zamanlı yazarlar hâlâ önemlidir. Block depolama genellikle tek bir yazar varsayar; çok bağlı modlar mevcuttur ancak karmaşıklık ekler. Object depolama bir milyon istemcinin aynı anda PUT yapmasına olanak tanır; son-yazar-kazanır anlamatiği (veya hepsini korumak için sürümleme) ile. Aynı anahtara sahip farklı dosyaları iki kullanıcının yükleyebileceği bir dosya paylaşım sistemi için kova üzerindeki sürümleme her ikisini de korur.

Dosya Transferi Uygulamalarının Block Depolamaya Yine de İhtiyaç Duyduğu Durumlar

Uyarı: object depolamaya hizmet eden uygulama genellikle block destekli ana bilgisayarlarda çalışır. Bir dosya yükleme API'sinin geçici depolama (çok parçalı parçalar, antivirüs taraması), metadata depolama (genellikle EBS üzerinde PostgreSQL'de) ve günlükler için yerel diske ihtiyacı vardır. Nesnelerin kendisi S3/R2/Blob'a gider; çevresindeki mekanizma block üzerinde yaşar.

Yüksek aktarım hızlı akış yüklemeleri için bellekteki pipeline'lar diski geride bırakır. aws-sdk-js ve boto3 gibi kütüphaneler hiçbir zaman yerel diske değmeyen akışlı çok parçalı yüklemeleri destekler. İyi ayarlanmış bir yükleme servisi, 500 MB'ın altında RAM ve sıfır geçici dosyayla 5 GB'lık bir dosyayı istemciden object depolamaya aktarabilir.

Metadata: Sinsice Fark

Object depolama her nesneyle metadata taşır: sistem metadata'sı (boyut, mtime, etag), kullanıcı metadata'sı (keyfi anahtar-değer çiftleri, x-amz-meta-* başlıkları) ve etiketler. S3 Object Lambda, Inventory raporları veya DynamoDB ile eşleştirerek metadata'ya göre arama yapabilirsiniz. Block depolama metadata'yı tamamen dosya sistemine bırakır; bu da 10 milyon dosyayı etiketlemenin özel bir veritabanı gerektirdiği anlamına gelir.

"Fransa'daki kullanıcılar tarafından geçen hafta yüklenen 100 MB'ın üzerindeki tüm dosyaları bul" sorusunu anlık yanıtlaması gereken bir transfer uygulaması için object metadata ve Parquet envanteri, Athena ile saniyeler içinde sorgu yapmanızı sağlar. NFS bağlı block hacminde aynı soru, saatler süren bir find komutudur.

Şifreleme ve Erişim Kontrolü

Her iki depolama türü de AES-256 ile dinlenme halinde şifrelemeyi destekler. Object depolama, nesne başına erişim kontrolünü kolaylaştırır: kova politikaları, önceden imzalanmış URL'ler, nesne ACL'leri ve IAM koşulları. Block depolama erişimi daha kabadır — tüm hacim bağlı ya da değil.

Zaman sınırlı indirme bağlantılarıyla güvenli dosya paylaşımı için önceden imzalanmış S3 URL'leri (en fazla 7 gün geçerli) standart modeldir. Sıfır sunucu tarafı düz metin açığıyla transferler için yüklemeden önce istemci tarafı şifreleme herhangi bir nesne deposuyla çalışır. HexaTransfer tarayıcıda AES-256-GCM ile şifreler ve yalnızca şifreli metin depolar — nesne arka ucu anlamsız baytlar görür.

Basit Karar Kuralı

Üç soru sorun:

  1. Verilere bir dosya sistemi API'si (POSIX, SMB, NFS) aracılığıyla mı erişiyorsunuz? Evet ise, block veya dosya depolama.
  2. Ona HTTP üzerinden mi erişiyorsunuz, nadiren mi değiştiriyorsunuz ve sınırsız ölçek mi istiyorsunuz? Evet ise, object depolama.
  3. Veri kümesi 10 TB'ın üzerinde mi ve büyüyor mu? Neredeyse her zaman object depolama.

Dosya transferi iş yükleri için (2)'nin yanıtı her zaman evettir. Dosyaların kendisi için S3, R2, Azure Blob veya GCS kullanın; bunları yöneten veritabanı ve web katmanı için block depolamayı saklayın.

hexatransfer.com'da deneyin — ücretsiz, hesap gerekmez, maksimum 10 GB.

Uçtan uca şifreleme ile büyük dosyaları güvenle gönderin

Uçtan uca şifreleme ile 10 GB'a kadar dosya ücretsiz aktarın. Hesap gerekmez. Dosyalarınız yüklenmeden önce tarayıcınızda şifrelenir — başka kimse okuyamaz.

Dosya gönder