Bagikan melalui


Memahami jenis penguncian dan penguncian file di Azure NetApp Files

Di lingkungan NAS, beberapa klien mengakses file dalam volume yang sama. Volume NAS tidak sadar aplikasi, jadi untuk melindungi data dari potensi kerusakan ketika lebih dari satu klien mencoba menulis ke file yang sama pada saat yang sama, aplikasi mengirim permintaan kunci ke server NAS untuk mencegah klien lain membuat perubahan saat file sedang digunakan. Dengan NFS, mekanisme penguncian file bergantung pada versi NFS yang digunakan.

Jenis kunci

Ada beberapa jenis kunci NFS, yang meliputi:

Kunci bersama: Kunci bersama dapat digunakan oleh beberapa proses secara bersamaan dan hanya dapat dikeluarkan jika tidak ada kunci eksklusif pada file. Kunci ini ditujukan untuk pekerjaan baca-saja tetapi dapat digunakan untuk menulis (seperti dengan database).

Kunci eksklusif: Kunci eksklusif beroperasi sama dengan kunci eksklusif di CIFS/SMB: hanya satu proses yang dapat menggunakan file ketika ada kunci eksklusif. Jika ada proses lain yang mengunci file, kunci eksklusif tidak dapat dikeluarkan kecuali proses tersebut di-fork.

Delegasi: Delegasi hanya digunakan dengan NFSv4.x dan ditetapkan ketika opsi server NFS diaktifkan dan klien mendukung delegasi NFSv4.x. Delegasi menyediakan cara untuk melakukan cache operasi di sisi klien dengan membuat kunci "lunak" ke file yang digunakan oleh klien. Ini meningkatkan performa beban kerja tertentu dengan mengurangi jumlah panggilan antara klien dan server dan mirip dengan kunci oportunistik SMB. Azure NetApp Files saat ini tidak mendukung delegasi NFSv4.x.

Kunci rentang byte: Daripada mengunci seluruh file, penguncian rentang byte hanya mengunci sebagian file.

Perilaku penguncian tergantung pada jenis kunci, versi sistem operasi klien, dan versi NFS yang digunakan. Pastikan untuk menguji penguncian di lingkungan Anda untuk mengukur perilaku yang diharapkan.

Penguncian NFSv3

NFSv3 menggunakan protokol tambahan seperti Network Lock Manager (NLM) dan Network Status Monitor (NSM) untuk mengoordinasikan kunci file antara klien NFS dan server. Protokol tambahan ini didefinisikan dalam RFC-1813, yang dipatuhi Azure NetApp Files.

NLM membantu membuat dan melepaskan kunci, sementara NSM memberi tahu rekan-rekan server reboot. Dengan penguncian NFSv3, ketika klien memulai ulang, server harus melepaskan kunci. Ketika server di-boot ulang, klien mengingatkan server dari kunci yang dipegangnya

Catatan

Dalam beberapa kasus, mekanisme kunci NFS tidak berkomunikasi dengan benar (seperti jika terjadi pemadaman jaringan), dan kunci kedaluarsa adalah sisa di server dan harus dibersihkan secara manual. Untuk informasi selengkapnya tentang tugas ini, lihat memecahkan masalah kunci file.

Penguncian NFSv4.x

NFSv4.x menggunakan model penguncian berbasis sewa yang terintegrasi dalam protokol NFS. Ini berarti tidak ada layanan tambahan untuk dipertahankan atau dikhawatirkan; semua penguncian dienkapsulasi dalam komunikasi NFSv4.x.

Azure NetApp Files mendukung mekanisme penguncian file NFSv4.x, mempertahankan status semua kunci file di bawah model berbasis sewa. Sesuai dengan RFC 8881, Azure NetApp Files akan "menentukan satu periode sewa untuk semua status yang dipegang oleh klien NFS. Jika klien tidak memperbarui sewanya dalam periode yang ditentukan, semua status yang terkait dengan sewa klien dapat dirilis oleh server."

Ini berarti klien dapat memperbarui sewanya secara eksplisit atau implisit dengan melakukan operasi, seperti membaca file. Selain itu, Azure NetApp Files mendefinisikan masa tenggang, yang merupakan periode pemrosesan khusus di mana klien mencoba untuk mengklaim kembali status penguncian mereka selama pemulihan server.

Istilah Definisi
Penyewaan Periode waktu di mana Azure NetApp Files secara tidak dapat dicabut memberikan kunci kepada klien.
Masa tenggang Periode waktu di mana klien mencoba untuk mengklaim kembali status penguncian mereka selama pemulihan server jika terjadi pemadaman server.

Cara Azure NetApp Files menangani kunci NFSv4.x

Kunci dikeluarkan oleh Azure NetApp Files berdasarkan permintaan klien berdasarkan sewa. Server Azure NetApp Files memeriksa sewa pada setiap klien setiap 30 detik untuk perubahan. Dalam kasus reboot klien, klien dapat mengklaim kembali semua kunci yang valid dari server setelah dimulai ulang. Jika server Azure NetApp Files dimulai ulang, maka setelah memulai ulang, server tidak mengeluarkan kunci baru kepada klien untuk masa tenggang 45 detik. Setelah itu, kunci dapat dikeluarkan untuk klien yang meminta. Jika kunci tidak dapat dibuat ulang selama masa tenggang yang ditentukan, maka kunci akan kedaluwarsa sendiri. Perilaku ini berbeda dari penguncian NFSv3, karena tidak akan ada kunci basi yang perlu dipecah secara manual.

Membuat kunci secara manual pada klien

Untuk menguji kunci NFS, klien harus memberi tahu server NFS untuk membuat kunci. Namun, tidak semua aplikasi menggunakan kunci. Misalnya, aplikasi "vi" tidak akan mengunci file. Ini membuat file pertukaran tersembunyi, menggunakan konvensi penamaan titik, di folder yang sama dan kemudian menerapkan penulisan ke file tersebut ketika aplikasi ditutup. Kemudian file lama dihapus dan file swap akan diganti namanya menjadi nama file.

Namun, ada utilitas untuk membuat kunci secara manual. Misalnya, flock dapat mengunci file.

Untuk membuat kunci pada file, pertama-tama jalankan exec untuk menetapkan ID numerik.

# exec 4<>v4user_file

Gunakan flock untuk membuat kunci bersama atau eksklusif pada file.

# flock

Usage:
 flock [options] <file|directory> <command> [command args]
 flock [options] <file|directory> -c <command>
 flock [options] <file descriptor number>

Options:
 -s  --shared             get a shared lock
 -x  --exclusive          get an exclusive lock (default)
 -u  --unlock             remove a lock
 -n  --nonblock           fail rather than wait
 -w  --timeout <secs>     wait for a limited amount of time
 -E  --conflict-exit-code <number>  exit code after conflict or timeout
 -o  --close              close file descriptor before running command
 -c  --command <command>  run a single command string through the shell

 -h, --help     display this help and exit
 -V, --version  output version information and exit

# flock -n 4

Untuk membuka kunci file.

# flock -u -n 4

Mengunci file secara manual memungkinkan Anda menguji interaksi buka dan edit file dan menguji fungsionalitas kunci di Azure NetApp Files.

Langkah berikutnya