Ağ paylaşımını önbelleğe alan bir NFS sunucusu nasıl kurulur?


14

Kullanıcı verileri iki büyük (> 1 PB) OpenStack Swift depolama kümesinde saklanır. Küme A ve Küme B olsunlar .

Ek olarak, bu verilerle etkileşime girmesi gereken birkaç PoP vardır. Bu PoP'lardaki sunucular etkin bir şekilde disksizdir, yani üzerinde hiçbir kullanıcı verisi depolanmaz veya hiç indirilmez. PoP'lar genel dünya bölgelerinde gruplandırılabilir (örn. Kuzey Amerika , Güney Afrika , Orta Avrupa ve diğerleri).

Bazı PoP'lar, herhangi bir kümenin Swift uç noktalarından oldukça uzak bir mesafede olup istenmeyen bir gecikme sağlar. Bunu biraz hafifletmek için, her bir bölgede, en yakın kümeye r / w isteklerini önbelleğe alacak bir önbellek ağ geçidi sunucusu kurmak istiyorum.

Şu anda, herhangi bir PoP istemcisi kullanıcı verilerine , Swift Object Storage'ı bir blok aygıt (daha fazla veya daha az) olarak bağlayan bir FUSE modülü olan, kalıcı olarak monte edilmiş bir hızlı sanal dosya sistemi ile erişmektedir . Bununla birlikte, svfs ilk etapta o kadar istikrarlı değildir ve gelecekte istemciler NFS üzerinden önbellek sunucularına erişmelidir.

Bu, istenen mimarinin bir dalının diyagramıdır:

+------------------+                +------------------+    NFS   +------------------+
|    Cluster A     |     SVFS       |  Region 1 Cache  +---------->  R1 PoP a Client |
|                  +---------------->                  |          |                  |
|Persistent Storage|                |Ephemeral  Storage+----+     |Generates R/W Load|
+-----------------++                +------------------+    |     +------------------+
                  |                                         |
                  |                 +------------------+    | NFS +------------------+
                  |      SVFS       |  Region 2 Cache  |    +----->  R1 PoP b Client |
                  +----------------->                  |          |                  |
                                    |Ephemeral  Storage|          |Generates R/W Load|
                                    +------------------+          +------------------+

Ben aşinayım NFS kurma temelleri ve svfs.

Soru şudur : svfs bağlama noktasına yazmadan önce önbelleğe alma sunucusunu tüm kaynakları (belirlenmiş bir önbellek bölümü, RAM) agresif bir şekilde ve olabildiğince fazla önbellek kullanacak şekilde nasıl ayarlayabilirim? Temel olarak şu şekilde gelir: Linux'ta bir dizini nasıl önbelleğe alabilirim?

Mümkünse, verimi en üst düzeye çıkarmak ve önbelleğin kümeye yazması gerekiyorsa gecikmeyi en aza indirmek için, FUSE isteklerindeki okuma ve yazmaların birleştirilmesi ve mümkünse blok boyutlarının en az 128k olması gerekir.

Ek 1 : Birkaç sunucuda svfs'den S3QL'e küme bağlama modülünü değiştirdim. S3QL'in önbelleğe alınması performansı biraz geliştirdi. Tamlık için bazı performans verileri almaya çalışacağım.


nfs istemcilerinde fs- cache'yi
kofemann

Lütfen serverfault.com/a/441443/345699 adresine bakın . Muhtemelen bu görevinize yardımcı olacaktır
Steven K7FAQ

Yanıtlar:


1

İçsel linux mekanizmaları ( cachefsaka gibi cachefilesd) işe yaramazsa ve bütçeniz varsa, WAFS'ye (geniş alan dosya hizmetleri) bakabilirsiniz . Bunlar, genellikle WAN bağlantılarında bulunan gecikmeleri gizlemeye çalışmak için NFS'nin (ve CIFS'nin) agresif önbelleğe alınması için tasarlanmış cihazlardır.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.