Bagaimana cara mengatur server NFS yang cache berbagi jaringan?


14

Data pengguna disimpan di dua cluster penyimpanan OpenStack Swift yang cukup besar (> 1 PB). Biarkan mereka menjadi Cluster A dan Cluster B .

Selain itu, ada beberapa PoP yang perlu berinteraksi dengan data itu. Server dalam PoPs ini secara efektif tidak memiliki disk, artinya tidak ada data pengguna yang disimpan atau pernah diunduh ke mereka. PoP dapat dikelompokkan ke dalam wilayah dunia umum (misalnya Amerika Utara , Afrika Selatan , Eropa Tengah dkk.).

Beberapa PoPs berada cukup jauh dari titik akhir Swift dari salah satu cluster, memperkenalkan latensi yang tidak diinginkan. Untuk mengurangi ini, saya ingin mengatur server gateway caching di masing-masing wilayah, yang akan men-cache permintaan r / w ke cluster terdekat.

Saat ini, klien di salah satu PoP mengakses data pengguna dengan sistem file virtual swift yang dipasang secara permanen , yang merupakan modul FUSE yang memasang Swift Object Storage sebagai perangkat blok (kurang lebih). Namun, svfs tidak terlalu stabil di tempat pertama dan di masa depan, klien harus mengakses server cache melalui NFS.

Ini adalah diagram dari satu cabang arsitektur yang diinginkan:

+------------------+                +------------------+    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|
                                    +------------------+          +------------------+

Saya akrab dengan dasar - dasar pengaturan NFS dan svfs.

Pertanyaannya adalah : Bagaimana saya bisa mengatur server caching untuk menggunakan semua sumber daya yang tersedia (partisi cache yang ditunjuk, RAM) untuk cache sebagai agresif dan data sebanyak mungkin sebelum menulis ke titik mount svfs? Pada dasarnya turun ke: Bagaimana saya bisa men-cache direktori di linux?

Jika memungkinkan, membaca dan menulis harus dikonsolidasikan dan ukuran blok dalam permintaan FUSE harus setidaknya 128rb jika mungkin untuk memaksimalkan throughput dan meminimalkan latensi jika cache perlu menulis ke cluster.

Tambahan 1 : Saya telah beralih modul mount cluster dari svfs ke S3QL pada beberapa server. Caching S3QL telah sedikit meningkatkan kinerja. Saya akan mencoba mendapatkan beberapa data kinerja untuk kelengkapan.


Anda dapat mencoba untuk mengaktifkan fs-cache pada klien nfs: cyberciti.biz/faq/…
kofemann

Silakan lihat serverfault.com/a/441443/345699 . Mungkin ini akan membantu dalam pencarian Anda
Steven K7FAQ

Jawaban:


1

Jika mekanisme linux yang melekat (seperti cachefsalias cachefilesd) tidak berfungsi DAN Anda memiliki anggaran, Anda dapat melihat WAFS (layanan file area luas). Ini adalah perangkat yang dirancang untuk caching agresif NFS (dan CIFS), untuk mencoba dan menyembunyikan latensi yang biasanya terlibat dalam tautan WAN.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.