External NFS Server Configuration

Platform ini memungkinkan berbagi data antara server (tempat file terletak secara fisik) dan klien (mendapatkan akses ke data jarak jauh seolah-olah disimpan secara lokal). Konfigurasi yang diperlukan untuk mengatur share bervariasi berdasarkan kondisi berikut:
-
kedua instance berada di dalam akun PaaS yang sama - baik ekspor data dari penyimpanan atau mount data pada klien (platform secara otomatis menangani operasi kedua)
-
satu instance berada di luar platform - ekspor data dari penyimpanan eksternal (dijelaskan dalam panduan ini) dan mount data eksternal pada klien
Di bawah ini, kami akan mempertimbangkan konfigurasi yang diperlukan untuk mengekspor data dari platform Shared Storage Container ke instance eksternal. Alur yang dijelaskan cocok untuk server penyimpanan berbasis NFS apa pun.
1. Pertama-tama, untuk berbagi data melalui Internet, diperlukan menambahkan alamat public IP ke server Anda:

2. Selanjutnya, Anda perlu mendeklarasikan daftar direktori yang ingin Anda bagi dalam file etc/exports yang sesuai. Di platform, ini dapat dengan mudah diakses dengan tombol Configuration di bagian Exports dari Configuration File Manager bawaan.
Di sini, format berikut harus digunakan:
{directory} {server}([option],[option],..)

dimana:
-
{directory} - jalur ke folder (relatif terhadap folder Root) yang harus diekspor
-
{NFS_client} - custom domain nama atau alamat IP publik dari node klien (yaitu tempat file yang diekspor harus dipasang)
Jika instance Anda tidak memiliki alamat eksternal yang terlampir, Anda dapat menggunakan IP host yang sesuai. Ini bisa diperoleh dengan menghubungkan ke container via SSH dan menjalankan perintah berikut: curl ifconfig.co
Perhatikan bahwa alur seperti itu sangat tidak aman dan tidak boleh digunakan untuk tujuan produksi, karena akan membuat data bersama Anda tersedia untuk container mana pun di host yang sama.
-
[option] - beberapa parameter tambahan untuk menggambarkan izin akses, di mana yang utama adalah:
- async - memungkinkan NFS klien menerima respons dari penyimpanan segera setelah permintaan penambahan konten diproses. Saat ini, data sudah ada di cache tetapi belum benar-benar ditulis ke penyimpanan. Dibandingkan dengan opsi sync yang berlawanan, ini memberikan peningkatan kinerja tetapi meninggalkan sedikit risiko kehilangan data (jika dihentikan/crash saat masih menahan data yang belum tertulis dalam cache)
- ro (atau rw) - mendefinisikan izin baca-saja (baca & tulis) untuk membuat node klien dapat melihat (melihat dan mengedit) data bersama
- no_root_squash - memberi pengguna root pada server klien tingkat akses yang sama seperti pengguna root pada penyimpanan container
- no_subtree_check - menetapkan aksesibilitas untuk seluruh direktori (kinerja lebih baik tetapi membatasi penyediaan aturan individu untuk file di dalamnya)
Untuk keamanan tambahan, Anda dapat mengkonfigurasi file etc/hosts.allow dan etc/hosts.deny yang sesuai untuk mengelola daftar host yang dapat bekerja dengan server NFS.
3. Ketika bekerja dengan Shared Storage Auto-Cluster berdasarkan GlusterFS, pertimbangkan bahwa hanya folder /data yang direplikasi di antara instance, jadi direktori yang diekspor harus terletak di dalam.
Juga, opsi tambahan fsid harus wajib ditambahkan ke string konfigurasi ekspor. Misalnya, nilai parameter ini dapat dihasilkan secara acak dengan perintah berikut:
cat /proc/sys/kernel/random/uuid

Akibatnya, string ekspor akan mirip dengan yang berikut ini:

Jangan lupa untuk Simpan perubahan yang telah Anda buat.
4. Untuk menerapkan pengaturan ekspor baru, perintah exportfs yang sesuai harus digunakan (mis. melalui Web SSH):
exportfs -ra

5. Selanjutnya, Anda perlu membuka port server NFS (111 , 2049 , dan 20048) untuk alamat IP klien NFS (yang digunakan dalam langkah kedua). Arahkan ke bagian Settings >Firewall environment penyimpanan untuk menambahkan aturan yang diperlukan melalui UI yang intuitif:

Ini dapat dilakukan melalui konsol juga:
iptables -I INPUT -p tcp -m multiport --dports 111,2049,20048 -s {NFS_client} -j ACCEPT
iptables -I INPUT -p udp -m multiport --dports 111,2049,20048 -s {NFS_client} -j ACCEPT
6. Ketika memberikan hak RW, pastikan bahwa pengguna yang sama memiliki izin akses yang setara ke folder yang dibagi baik pada klien NFS maupun server. Misalnya, stack yang berbeda dapat menggunakan pengguna yang berbeda secara default (mis. root dan jelastic).
Jadi, jika diperlukan, jalankan perintah berikut di server penyimpanan Anda untuk menyesuaikan hak:
chown {uid}:{gid} {path}
Di sini:
- {uid} - nama pengguna atau ID, yang dapat ditemukan di file /etc/passwd dari container platform Anda
- {gid} - nama grup atau pengenal, yang ditampilkan dalam file /etc/group dari node Anda
- {path} - jalur ke direktori yang ingin Anda ubah izinnya

Itu saja! Server penyimpanan data Anda siap, sehingga Anda dapat kembali ke instance klien dan mulai mount.