Saya baru mencoba membagi ZFS dataset di Solaris 10 melalui NFS (Network File System). Beberapa hal yang perlu saya siapkan adalah :
- Dataset mana yang akan saya bagi?
- Server mana saja yang akan saya ijinkan mengakses dataset tadi? Siapa NFS client-nya? Berapa IP NFS client tersebut?
- Apakah permission yang akan diberikan? read only? read write?
Sebagai contoh misalnya saya punya sebuah server berisi Solaris 10 (hostname
-nya nfs-server
), lalu saya ingin membagi sebuah ZFS dataset dengan komputer lainnya. Saya akan membuat ZFS dataset baru rpool/testnfs
. rpool/testnfs
akan saya mount di direktori /sharenfs
. Berikut perintah yang saya gunakan untuk membuat ZFS dataset tadi :
root@nfs-server:/# zfs create -o mountpoint=/sharenfs rpool/testnfs
Untuk memeriksa ZFS dataset yang sudah baru saja dibuat saya gunakan perintah ini :
root@nfs-server:/# df -h | grep sharenfs rpool/testnfs 134G 31K 83G 1% /sharenfs root@nfs-server:/#
Untuk dapat berbagi ZFS dataset tadi, saya perlu mengaktifkan service NFS Server terlebih dahulu. Untuk memeriksa apakah NFS server sudah aktif saya gunakan perintah berikut ini :
root@nfs-server:/# svcs | grep nfs online Jun_25 svc:/network/nfs/rquota:default offline Jun_25 svc:/network/nfs/status:default offline Jun_25 svc:/network/nfs/nlockmgr:default offline Jun_25 svc:/network/nfs/cbd:default offline Jun_25 svc:/network/nfs/mapid:default offline Jun_25 svc:/network/nfs/client:default offline 16:59:36 svc:/network/nfs/server:default root@nfs-server:/#
Ternyata service NFS (network/nfs/server
) belum aktif, saya perlu mengaktifkannya dengan perintah berikut ini :
root@nfs-server:/# svcadm -v enable -r network/nfs/server svc:/network/nfs/server:default enabled. svc:/milestone/network enabled. svc:/network/loopback enabled. svc:/network/physical enabled. svc:/network/nfs/nlockmgr enabled. svc:/network/rpc/bind enabled. svc:/system/filesystem/minimal enabled. svc:/system/filesystem/usr enabled. svc:/system/boot-archive enabled. svc:/system/filesystem/root enabled. svc:/system/device/local enabled. svc:/system/identity:node enabled. svc:/system/sysidtool:net enabled. svc:/milestone/single-user:default enabled. svc:/milestone/devices enabled. svc:/system/device/fc-fabric enabled. svc:/system/sysevent enabled. svc:/system/manifest-import enabled. svc:/system/filesystem/local:default enabled. svc:/milestone/single-user enabled. svc:/system/filesystem/minimal:default enabled. svc:/system/identity:domain enabled. svc:/network/nfs/status enabled. svc:/system/filesystem/local enabled. root@nfs-server:/#
Sekarang service NFS sudah aktif :
root@nfs-server:/# svcs | grep nfs online Jun_25 svc:/network/nfs/rquota:default online 17:05:00 svc:/network/nfs/status:default online 17:05:01 svc:/network/nfs/cbd:default online 17:05:01 svc:/network/nfs/mapid:default online 17:05:01 svc:/network/nfs/nlockmgr:default online 17:05:01 svc:/network/nfs/client:default online 17:05:02 svc:/network/nfs/server:default root@nfs-server:/#
Langkah berikutnya adalah membagi dataset rpool/testnfs
(dengan kata lain membagi direktori /sharenfs
), caranya dengan menggunakan perintah berikut ini :
root@nfs-server:/# zfs set sharenfs='rw=10.22.237.113,root=10.22.237.113' rpool/testnfs
Pada perintah di atas, saya menyertakan juga opsi untuk memberi akses kepada komputer lain yang akan menjadi NFS client. Komputer dengan IP 10.22.237.113 akan diijinkan untuk mengakses ZFS dataset rpool/testnfs
, akses yang diberikan adalah read-write
. Dengan kata lain client dapat mengakses data-data di dalam /sharenfs
dan juga dapat menyimpan data di direktori tersebut.
Untuk memastikan direktori /sharenfs
sudah tersedia, saya gunakan perintah share
seperti contoh berikut ini :
root@nfs-server:/# share - /sharenfs sec=sys,rw=10.22.237.113,root=10.22.237.113 "" root@nfs-server:/#
Perlu diingat bahwa perintah “zfs set sharenfs
” sifatnya tidak permanen (hilang saat restart). Untuk membuat sharing ini permanen, kita perlu mendaftarkan direktori yang akan di-share tersebut ke dalam file /etc/dfs/dfstab
. Contohnya seperti berikut ini :
root@nfs-server:/# cat /etc/dfs/dfstab share -F nfs -o rw=10.22.237.113,root=10.22.237.113 /sharenfs root@nfs-server:/#
Mari beralih ke NFS client (komputer dengan IP 10.22.237.113). Komputer ini akan mengakses ZFS dataset rpool/testnfs
dari nfs-server
. IP nfs-server adalah 10.22.250.181. Perintah yang saya gunakan adalah seperti berikut ini :
root@client:/# mount -F nfs 10.22.250.181:/sharenfs /nfs
Direktori /sharenfs
akan di-mount pada direktori /nfs
.
Berikut tampilan yang muncul bila akses NFSnya berfungsi dengan baik :
root@client:/# df -h | grep nfs 10.22.250.181:/sharenfs 83G 31K 83G 1% /nfs root@client:/#
Dengan demikian si client sekarang bisa mengakses ZFS dataset rpool/testnfs
yang dimiliki oleh nfs-server
.
Berikut contoh kemungkinan error yang muncul saat mengakses NFS direktori :
root@client:/# mount -F nfs 10.22.250.181:/sharenfs /nfs nfs mount: 10.22.250.181: : RPC: Program not registered nfs mount: retrying: /nfs ^C root@client:/#
Bila muncul error seperti di atas, kemungkinan besar NFS service di server belum diaktifkan (lihat kembali contoh perintah untuk mengaktifkan NFS service dengan perintah svcadm
).
Contoh error lain saat mencoba mengakses NFS direktori adalah seperti berikut :
root@client:/# mount -F nfs 10.22.250.181:/sharenfs /nfs nfs mount: mount: /nfs: I/O error root@client:/#
Bila muncul error seperti di atas, dapat dipastikan proses sharing di NFS server-nya tidak berhasil. Silakan cek kembali NFS server-nya dengan perintah share
(seperti yang sudah dicontohkan sebelumnya).