ZFS

Server NFS yang didukung OpenZFS Bagian 1 - Membuat Server

Server NFS yang didukung OpenZFS Bagian 1 - Membuat Server
Jika Anda terbiasa dengan OpenZFS, Anda tahu semua tentang antarmuka yang kaya fitur, arsitektur yang fleksibel, checksum yang andal, dan mekanisme COW. Mungkin Anda juga menginginkannya di desktop Anda, tetapi Anda tidak ingin memformat ulang disk dan partisi yang ada. Mungkin, Anda menggunakan Windows 10, yang belum mendukung OpenZFS. Nah dalam posting blog ini, saya akan membahas bagaimana Anda dapat membuat Network File System, atau NFS, yang berjalan di server terpisah. Perangkat NFS ini kemudian dapat dipasang di workstation desktop Anda. Dengan cara ini Anda dapat memiliki keandalan dan ketahanan ZFS dengan keramahan pengguna OS Desktop favorit Anda, karena NFS tersedia di semua platform.

Saya akan merinci pembuatan titik pemasangan NFS pada klien Windows 10 di Bagian 2 dari seri ini. Untuk saat ini mari kita fokus pada server Ubuntu yang menawarkan penyimpanan NFS dan klien Ubuntu yang mencoba menghubungkannya.

Pengaturan

Server NFS saya akan didasarkan pada Ubuntu 18.04 LTS. Anda dapat menggunakan distro Linux atau FreeBSD favorit Anda, atau OS lain yang mendukung OpenZFS. Alasan saya menggunakan Ubuntu 18.04 adalah bahwa itu cukup populer dan akan sangat mengurangi penghalang masuk.

NFS seharusnya hanya tersedia di LAN saya yang memiliki subnet mask 255.255.255.0 dan 192.168.0.1 sebagai gerbang default. Dalam bahasa Inggris biasa, ini berarti bahwa semua perangkat yang terhubung ke jaringan rumah saya (WiFi dan Ethernet, dkk) akan memiliki alamat IP mulai dari 192.168.0.2 sampai 192.168.0.254.

Server NFS akan dikonfigurasi untuk mengizinkan hanya perangkat dengan alamat IP yang disebutkan di atas saja yang memiliki akses ke server NFS. Ini akan memastikan bahwa hanya perangkat yang terhubung ke LAN saya yang mengakses file saya dan dunia luar tidak dapat mengaksesnya. Jika Anda memiliki pengaturan 'Wifi terbuka' atau jika keamanan pada titik akhir router Anda meragukan, ini tidak akan menjamin keamanan apa pun.

Saya tidak akan merekomendasikan menjalankan NFS melalui internet publik tanpa tindakan keamanan tambahan.

Terakhir, perintah yang dijalankan di server NFS memiliki prompt, server $ dan perintah yang akan dijalankan di sisi klien memiliki prompt client $

Membuat kumpulan OpenZFS dan Dataset

1. Membuat zpool

Jika Anda sudah menjalankan dan menjalankan zpool, lewati langkah ini. Di server NFS saya, yang menjalankan Ubuntu 18.04 LTS server, saya pertama kali menginstal OpenZFS.

server $ sudo apt install zfsutils-linux

Selanjutnya kita akan membuat daftar semua perangkat blok yang tersedia, untuk melihat disk (dan partisi) baru yang menunggu untuk diformat dengan zfs.

$ lsblk
NAMA   MAJ:MIN RM  UKURAN RO TYPE MOUNTPOINT
loop0    7:0    0 89.5M  1 putaran /snap/core/6130
loop1    7:1    0 86.9M  1 putaran /snap/core/4917
loop2    7:2    0 91.1M  1 putaran /snap/core/6259
sda      8:0    0   50G  0 disk
sda1   8:1    0    1M  0 bagian
sda2   8:2    0   50G  0 bagian /
sdb      8:16   0  931G  0 disk
sdc      8:32   0  931G  0 disk
sr0     11:0    1 1024M  0 rom

Contoh tipikal ditunjukkan di atas, tetapi konvensi penamaan Anda mungkin sangat berbeda. Anda harus menggunakan penilaian Anda sendiri, dan sangat berhati-hati tentang hal itu. Anda tidak ingin memformat disk OS Anda secara tidak sengaja. Misalnya, partisi sda1 jelas memiliki sistem file root sebagai titik pemasangannya sehingga tidak bijaksana untuk menyentuhnya. Jika Anda menggunakan disk baru, kemungkinan disk tersebut tidak memiliki titik pemasangan atau jenis partisi apa pun.

Setelah Anda mengetahui nama perangkat Anda, kami akan menggunakan perintah zpool create untuk memformat beberapa perangkat blok ini (disebut sdb dan sdc) menjadi zpool dengan satu vdev yang terdiri dari dua disk cermin.

server $ sudo zpool buat cermin tangki sdb sdc
server $ sudo zpool tangki status
tangki status zpool
kolam renang: tangki
negara: ONLINE
pindaian: tidak ada yang diminta
konfigurasi:
NAMA        NEGARA     BACA TULIS CKSUM
tangki        ONLINE       0     0     0
mirror-0  ONLINE       0     0     0
sdb     ONLINE       0     0     0
sdc     ONLINE       0     0     0
kesalahan: Tidak ada kesalahan data yang diketahui

Ke depan, Anda dapat menambahkan disk dalam set dua (disebut vdev) untuk memperbesar ukuran zpool ini, disk baru akan muncul sebagai mirror-1, mirror-2 dll. Anda tidak perlu membuat zpool seperti yang saya lakukan, Anda dapat menggunakan mirroring dengan lebih banyak disk, Anda dapat menggunakan striping tanpa redundansi tetapi kinerja yang lebih baik, atau Anda dapat menggunakan RAIDZ. Anda dapat mempelajarinya lebih lanjut di sini.

Pada akhirnya, yang penting adalah kita telah membuat zpool bernama tank. Di mana NFS bersama akan hidup. Mari kita buat dataset yang akan dibagikan. Pertama-tama pastikan bahwa kolam, bernama 'tangki', sudah terpasang. Titik pemasangan default adalah '/ tank' .

server $ sudo zfs memasang tangki
server $ sudo zfs create tank/nfsshare #create a new dataset on top of the pool

Mengatur Izin

Saat berbagi direktori NFS, pengguna super pada sistem klien tidak memiliki akses ke apa pun yang dibagikan. Sementara pengguna super sisi klien mampu melakukan apa saja di mesin klien, pemasangan NFS secara teknis bukan bagian dari mesin klien. Jadi mengizinkan operasi atas nama pengguna super sisi klien yang dipetakan sebagai pengguna super sisi server dapat mengakibatkan masalah keamanan. Secara default, NFS memetakan tindakan superuser sisi klien ke siapa pun: pengguna nogroup dan grup pengguna. Jika Anda bermaksud mengakses file yang di-mount sebagai root, maka dataset di server NFS kami juga harus memiliki izin yang sama,

server $ sudo chown none:nogroup /tank/nfsshare

Server NFS akan menjalankan tindakan apa pun oleh root sisi klien sebagai pengguna bukan siapa-siapa, jadi izin di atas akan memungkinkan operasi untuk dilakukan.

Jika Anda menggunakan nama pengguna (biasa) yang berbeda, seringkali lebih mudah untuk memiliki pengguna dengan nama pengguna yang sama persis di kedua sisi.

Membuat berbagi NFS

Setelah Zpool dibuat, Anda harus menginstal paket server nfs dari manajer paket Anda:

server $ sudo apt install nfs-kernel-server

Secara tradisional, server NFS menggunakan file /etc/exports untuk mendapatkan daftar klien yang disetujui dan file yang akan mereka akses. Namun, kami akan menggunakan fitur bawaan ZFS untuk mencapai hal yang sama.

Cukup gunakan perintah:

server $ sudo zfs set sharenfs=”on” /tank/nfsshare

Sebelumnya, saya menyinggung hanya memberikan IP tertentu akses. Anda dapat melakukannya sebagai berikut:

server $ sudo zfs set sharenfs="[email protected]/24" tank/nfsshare

'rw' adalah singkatan dari izin baca-tulis, dan diikuti oleh kisaran IP. Pastikan nomor port 111 dan 2049 terbuka di firewall Anda. Jika Anda menggunakan ufw, Anda dapat memeriksanya dengan menjalankan:

status server $ ufw

Catat IP server Anda di LAN, dengan menggunakan perintah ifconfig atau ip addr. Sebut saja itu server.aku p

Pemasangan Sisi Klien

Setelah share dibuat, Anda dapat memasangnya di mesin klien Anda, dengan menjalankan perintah:

klien $ mount -t nfs  server.ip:/tank/nfsshare /mnt

Ini akan memasang share NFS pada folder /mnt tetapi Anda dapat dengan mudah memilih titik pemasangan lain pilihan Anda.

Kesimpulan

Berbagi file mungkin merupakan aspek terpenting dari administrasi sistem. Ini meningkatkan pemahaman Anda tentang tumpukan penyimpanan, jaringan, izin pengguna, dan hak istimewa. Anda akan segera menyadari pentingnya Prinsip Privilege Terkecil - Artinya, hanya memberi pengguna akses paling sederhana yang diperlukan untuk pekerjaannya.

Anda juga akan belajar tentang interoperabilitas antara sistem operasi yang berbeda. Pengguna Windows dapat mengakses file NFS, begitu juga pengguna Mac dan BSD. Anda tidak dapat membatasi diri Anda pada satu OS ketika berhadapan dengan jaringan mesin yang semuanya memiliki konvensi dan bahasa mereka sendiri. Jadi silakan dan bereksperimen dengan share NFS Anda your. Saya harap Anda belajar sesuatu.

5 Game Arkade Terbaik untuk Linux
Saat ini, komputer adalah mesin serius yang digunakan untuk bermain game. Jika Anda tidak bisa mendapatkan skor tinggi baru, Anda akan tahu apa yang s...
Pertempuran Untuk Wesnoth 1.13.6 Pengembangan Dirilis
Pertempuran Untuk Westnoth 1.13.6 dirilis bulan lalu, adalah rilis pengembangan keenam dalam 1.13.x series dan memberikan sejumlah peningkatan, teruta...
Cara Menginstal League Of Legends di Ubuntu 14.04
Jika Anda adalah penggemar League of Legends, maka ini adalah kesempatan bagi Anda untuk menguji coba League of Legends. Perhatikan bahwa LOL didukung...