Venti - Venti

Venti veri bloklarını kalıcı olarak depolayan bir ağ depolama sistemidir. 160 bit SHA-1 verilerin karması (denir Puan by Venti) verilerin adresi olarak işlev görür. Bu, bir bir kez yaz aynı adrese sahip başka bir veri bloğu bulunamadığından politika: aynı verinin birden fazla yazımının adresleri aynıdır, bu nedenle yinelenen veriler kolayca tanımlanır ve veri bloğu yalnızca bir kez depolanır. Veri blokları kaldırılamaz, bu da onu kalıcı veya yedek depolama için ideal kılar. Venti tipik olarak aşağıdakilerle kullanılır: Fosil kalıcı anlık görüntülere sahip bir dosya sistemi sağlamak için.

Tarih

Venti tarafından tasarlandı ve uygulandı Sean Quinlan ve Sean Dorward -de Bell Laboratuvarları. Göründü Plan 9 2002 yılında dağıtım. Russ Cox Sunucunun çoğunu yeniden uygulayan, Venti'de depolamak için veri yapıları (dosyalar, dizinler ve meta veriler) oluşturmak için bir kitaplık yazdı ve optimizasyonları uyguladı. Venti hem Plan 9 dağıtımında hem de birçok UNIX benzeri işletim sistemi için mevcuttur[1] bir parçası olarak Kullanıcı Alanından Plan 9. Venti, Cehennem erişim için eşlik eden modüller ile. Var Git kendi Venti sunucularınızı oluşturmak için bir dizi program. Farklı arka uç depolama türlerini kullanan örnekler dahildir.

Detaylar

Venti bir Kullanıcı alanı arka plan programı.[2] Müşteriler Venti'ye bağlanır TCP[2] ve basit bir RPC -protokol. Protokolün en önemli mesajları aşağıda listelenmiştir. Verilen bir adresteki bir adresi silmek veya verileri değiştirmek için bir mesaj olmadığını unutmayın.

  • oku (puan, tür), tarafından tanımlanan verileri döndürür Puan ve tip[2]
  • yazma (veri, tür), mağazalar veri SHA-1 hashing ile hesaplanan adreste veri, ile kombine tip.[2]

Venti tarafından depolanan veri bloğunun uzunluğu 512 bayttan büyük ve 56 kilobayttan küçük olmalıdır. Dolayısıyla, bir Venti kullanıcısı / müşterisi daha büyük veri bloklarını depolamak istiyorsa, bir veri yapısı oluşturmalıdır (Venti'de saklanabilir). Örneğin, Fosil kullanır haşhaş ağaçları büyük dosyaları saklamak için. Venti'nin kendisi bir veri bloğunun içeriği ile ilgilenmez; ancak depolar tip bir veri bloğunun.

Venti'nin tasarımı aşağıdaki sonuçlara sahiptir:

  • Yazmalar kalıcı olduğundan, dosya sistemi yalnızca eklentidir (bu, hataları veri yok etme ihtimalinin daha düşük olduğu basit bir uygulamaya izin verir); dosya sistemi yok parçalanma oluşur.
  • İstemciler sunucunun doğruluğunu doğrulayabilir: döndürülen verilerin puanı, istenen adresle aynı olmalıdır. SHA-1, kriptografik olarak güvenli bir karma olduğundan, veri üretmek hesaplama açısından mümkün değildir.
  • Verilerin üzerine yazılamaz. Eğer bir adres zaten mevcutsa veri zaten mevcut.
  • Kullanıcı kimlik doğrulamasına çok az ihtiyaç vardır: Veriler silinemez ve yalnızca puan biliniyorsa okunabilir. Tek potansiyel sorun, kullanıcının diskleri doldurmasıdır.
  • Disk yapısını karmaşıklaştırmadan veriler sıkıştırılabilir.

Veri blokları şurada saklanır: sabit sürücüler. Kullanılabilir depolamayı oluşturan diskler, genellikle bir RAID, denir veri kaydı. Bu veri günlüğü adı verilen daha küçük parçalara bölünmüştür arenalargibi diğer medyaya yazılabilecek şekilde boyutlandırılmış CD /DVD veya Manyetik bant. Puanları veri günlüğündeki adreslerle eşleştiren dizin için başka bir sabit disk seti kullanılır. Dizin için kullanılan veri yapısı bir karma tablo sabit boyutlu kovalar. Venti, puanların rastgele dağıtılmasına güvenir, bu nedenle kovalar dolmaz. Her arama bir diske mal olduğu için arama süresi, bir dizin genellikle düşük olan birden çok sabit sürücüden oluşur erişim süresi.

Kullanım

Venti sunucusu, istemciler tarafından çeşitli şekillerde kullanılabilir. Plan 9 işletim sistemi, dosya sisteminin günlük arşivleme anlık görüntüleri için Venti'yi kullanır. Ana dosya sisteminin bu kopyaları, tarihe göre düzenlenmiş tam kopyalardan oluşan bir dosya ağacı olarak monte edilebilir. 'Vac' ve 'unvac' yardımcı program programları, bir Venti sunucusundan ayrı dosyalar şeklinde veya bir dizin ve içeriği olarak veri depolamak ve almak için kullanılabilir. 'Vacfs', uzaktan depolanan tüm verilerin tam olarak geri alınmasına gerek kalmadan bir boşluk puanı ile ilişkili verilerin taranmasına izin verir. Veri ve indeks puanları, 'rdarena' ve 'wrarena' kullanılarak Venti sunucuları arasında kopyalanabilir. Bell Labs'tan Plan 9, Kullanıcı Alanından Plan 9, Cehennem ve Venti protokolünü uygulayan diğer tüm istemciler, verileri depolamak ve almak için birbirinin yerine kullanılabilir.[3]

Karma çarpışmalar

Temel ilkesi bilgi teorisi ... güvercin deliği ilkesi Bu, A kümesinin B kümesinden daha fazla değer içermesi durumunda, A ile B'yi eşleyen herhangi bir işlev için, A kümesinin birden fazla üyesiyle ilişkili B üyeleri olacağını belirtir. Venti durumunda, kümesi olası SHA-1 hash değerleri, dosya sisteminde depolanabilecek olası tüm bloklar kümesinden açıkça daha küçüktür ve bu nedenle karma çarpışma mümkün.

160 bitlik bir karmada yanlışlıkla hash çarpışması riski, eksabaytlarca veri için bile çok küçüktür. Bununla birlikte, tarihsel olarak, birçok karma işlev, hem kriptografik hem de hesaplamalı ilerlemeler nedeniyle kötü niyetli karma çarpışmalara karşı giderek daha savunmasız hale gelir.[4] Venti, hash çarpışmaları konusunu ele almıyor; bu zaman itibariyle[ne zaman? ] SHA-1'de çarpışmaları bulmak hala sayısal olarak mümkün değildir, ancak Venti'nin ileride bir noktada farklı bir hash işlevine geçmesi gerekebilir. 23 Şubat 2017'de Google, SHAttered saldırısı, kabaca 2'de aynı SHA-1 karma değerine sahip iki farklı PDF dosyası oluşturdular.63.1 SHA-1 değerlendirmeleri. [5]

Ayrıca bakınız

Referanslar

  1. ^ Gibi Linux, FreeBSD, NetBSD, OpenBSD, SunOS veya Mac OS X
  2. ^ a b c d Lukkien, Mechiel. Venti Analizi ve Memventi Uygulaması. Tez. Twente Üniversitesi, 2007. N.p .: n.p., n.d. Twente Üniversitesi Tez Deposu. Ağ. 13 Ekim 2014. <http://essay.utwente.nl/694/1/scriptie_Lukkien.pdf >.
  3. ^ "Plan 9 4. baskı kılavuzundaki Venti (6) kılavuz sayfası". Man.cat-v.org. Alındı 2013-04-21.
  4. ^ "HASH ÇARPIŞMASI Soru-Cevap." Kriptografi Araştırması. Rambus, tarih yok. Ağ. 12 Ocak 2010. <https://web.archive.org/web/20100306180648/http://www.cryptography.com/cnews/hash.html >.
  5. ^ <https://en.wikipedia.org/wiki/SHA-1#SHAttered_–_first_public_collision >

Dış bağlantılar