Memasang Blob Storage dengan menggunakan protokol NFS 3.0

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan rencanakan yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

Artikel ini menyediakan panduan tentang cara memasang kontainer di Azure Blob Storage dari mesin virtual Azure berbasis Linux atau sistem Linux yang berjalan secara lokal dengan menggunakan protokol NFS 3.0. Untuk mempelajari selengkapnya tentang dukungan protokol NFS 3.0 di Blob Storage, lihat Dukungan protokol NFS 3.0 untuk Azure Blob Storage.

Langkah 1: Buat jaringan virtual Azure

Akun penyimpanan Anda harus dimuat dalam jaringan virtual. Jaringan virtual memungkinkan klien untuk tersambung dengan aman ke akun penyimpanan Anda. Untuk mempelajari selengkapnya tentang Azure Virtual Network, dan cara membuat jaringan virtual, lihat dokumentasi Jaringan Virtual.

Catatan

Klien di jaringan virtual yang sama dapat memasang kontainer di akun Anda. Anda juga dapat memasang kontainer dari klien yang berjalan di jaringan lokal, tetapi harus terlebih dahulu menghubungkan jaringan lokal ke jaringan virtual Anda. Lihat Koneksi jaringan yang didukung.

Langkah 2: Mengonfigurasi keamanan jaringan

Saat ini, satu-satunya cara untuk mengamankan data dalam akun penyimpanan adalah dengan menggunakan pengaturan jaringan virtual dan keamanan jaringan lainnya. Lihat Rekomendasi keamanan jaringan untuk penyimpanan Blob.

Alat lain yang digunakan untuk mengamankan data, termasuk otorisasi kunci akun, keamanan Microsoft Entra, dan daftar kontrol akses (ACL) tidak dapat digunakan untuk mengotorisasi permintaan NFS 3.0. Bahkan, jika Anda menambahkan entri untuk pengguna atau grup bernama ke ACL blob atau direktori, file tersebut menjadi tidak dapat diakses pada klien untuk pengguna non-root. Anda harus menghapus entri tersebut untuk memulihkan akses ke pengguna non-root pada klien.

Penting

Protokol NFS 3.0 menggunakan port 111 dan 2048. Jika Anda tersambung dari jaringan lokal, pastikan klien Anda mengizinkan komunikasi keluar melalui port tersebut. Jika Anda telah memberikan akses ke VNet tertentu, pastikan bahwa setiap grup keamanan jaringan yang terkait dengan VNet tersebut tidak berisi aturan keamanan yang memblokir komunikasi masuk melalui port tersebut.

Langkah 3: Membuat dan mengonfigurasi akun penyimpanan

Untuk memasang kontainer dengan menggunakan NFS 3.0, Anda harus membuat akun penyimpanan. Anda tidak dapat mengaktifkan akun yang sudah ada.

Protokol NFS 3.0 didukung untuk akun penyimpanan v2 tujuan umum standar dan untuk akun penyimpanan blob blok premium. Untuk informasi lebih lanjut tentang jenis akun penyimpanan ini, lihat Ringkasan akun penyimpanan.

Untuk mengonfigurasi akun, pilih nilai berikut:

Pengaturan Performa premium Performa standar
Lokasi Kawasan yang tersedia Kawasan yang tersedia
Performa Premium Standard
Jenis akun BlockBlobStorage Tujuan umum v2
Replikasi Penyimpanan berlebihan lokal (LRS), Penyimpanan berlebihan zona (ZRS) Penyimpanan berlebihan lokal (LRS), Penyimpanan berlebihan zona (ZRS)
Metode konektivitas Titik akhir Publik (jaringan terpilih) atau titik akhir Pribadi Titik akhir Publik (jaringan terpilih) atau titik akhir Pribadi
Namespace hierarkis Diaktifkan Diaktifkan
NFS V3 Diaktifkan Diaktifkan

Anda dapat menerima nilai default untuk semua pengaturan lainnya.

Langkah 4: Membuat kontainer

Buat wadah di akun penyimpanan Anda dengan menggunakan salah satu alat atau SDK ini:

Alat SDK
Portal Azure .NET
AzCopy Java
PowerShell Python
Azure CLI JavaScript
REST

Catatan

Secara default, opsi root squash dari kontainer baru adalah Tanpa Root Squash. Namun, Anda dapat mengubahnya ke Root Squash atau Squash Semua. Untuk informasi tentang opsi squash ini, lihat dokumentasi sistem operasi Anda.

Gambar berikut menunjukkan opsi squash saat muncul di portal Microsoft Azure.

Cuplikan layar yang memperlihatkan opsi squash di portal Azure.

Langkah 5: Instal paket AZNFS Mount Helper

Paket AZNFS Mount Helper membantu klien Linux NFS mengakses berbagi Azure Blob NFS dengan andal bahkan ketika alamat IP titik akhir berubah. Paket ini menjalankan pekerjaan latar belakang yang disebut aznfswatchdog yang memantau perubahan pada alamat IP titik akhir untuk berbagi yang dipasang. Jika perubahan terdeteksi, pekerjaan latar belakang ini memperbarui aturan Destination Network Address Translation (DNAT). Untuk mempelajari lebih lanjut, lihat AZNFS Mount Helper.

  1. Tentukan apakah paket AZNFS Mount Helper diinstal pada klien Anda.

    systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
    

    Jika paket diinstal, maka pesan AZNFS mounthelper is installed! akan muncul.

  2. Jika paket belum diinstal, gunakan perintah berikut untuk menginstalnya.

    wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
    

    Catatan

    AZNFS didukung pada distribusi Linux berikut:

    • Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS)
    • Centos7, Centos8
    • RedHat7, RedHat8, RedHat9
    • Rocky8, Rocky9
    • SUSE (SLES 15)

Langkah 6: Pasang kontainer

Buat direktori di sistem Linux Anda lalu pasang kontainer di akun penyimpanan.

  1. Pada sistem Linux Anda, buat direktori:

    mkdir -p /nfsdata
    
  2. Pasang kontainer dengan menggunakan salah satu metode berikut. Dalam kedua metode, ganti tempat penampung <storage-account-name> dengan nama akun penyimpanan Anda, lalu ganti <container-name> dengan nama kontainer Anda.

    • Agar berbagi dipasang otomatis saat reboot:

      1. Buat entri di file /etc/fstab dengan menambahkan baris berikut:

        <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name>  /nfsdata    aznfs defaults,sec=sys,vers=3,nolock,proto=tcp,nofail,_netdev    0 0
        
      2. Jalankan perintah berikut untuk segera memproses entri /etc/fstab dan mencoba memasang jalur sebelumnya:

        mount /nfsdata
        
    • Untuk titik pemasangan sementara yang tidak bertahan di seluruh reboot, jalankan perintah berikut:

      mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name>  /nfsdata
      

      Tip

      Dengan menggunakan -t aznfs opsi pemasangan, Anda memastikan bahwa klien NFS selalu tetap terhubung dengan benar ke titik akhir penyimpanan meskipun IP titik akhir berubah setelah pemasangan. Berbagi NFS yang dipasang dengan menggunakan -t nfs opsi pemasangan mungkin terputus dari titik akhir penyimpanan jika alamat IP titik akhir tersebut berubah.

      Parameter opsional lainnya tersedia dengan perintah mount. Parameter tersebut terutama memengaruhi perilaku sisi klien. sys adalah satu-satunya nilai yang saat ini didukung oleh sec opsi .

      Penting

      Opsi nconnect pemasangan hanya berfungsi pada klien yang memiliki dukungan Azure nconnect. nconnect Menggunakan opsi pada klien yang tidak didukung akan mengurangi throughput dan menyebabkan perintah ke waktu habis atau bekerja dengan tidak benar. Untuk mempelajari selengkapnya tentang cara memastikan bahwa klien Anda memiliki dukungan Azure nconnect, lihat Meningkatkan jumlah koneksi TCP.

Menyelesaikan kesalahan umum

Kesalahan Penyebab/resolusi
Access denied by server while mounting Pastikan klien Anda berjalan dalam subnet yang didukung. Lihat Lokasi jaringan yang didukung.
No such file or directory Pastikan untuk mengetik, daripada menyalin dan menempelkan, perintah pemasangan dan parameternya langsung ke dalam terminal. Jika Anda menyalin dan menempelkan bagian mana pun dari perintah ini ke terminal dari aplikasi lain, karakter tersembunyi dalam informasi yang ditempelkan dapat menyebabkan kesalahan ini muncul. Kesalahan ini juga mungkin muncul jika akun tidak diaktifkan untuk NFS 3.0.
Permission denied Mode default dari kontainer NFS 3.0 yang baru dibuat adalah 0750. Pengguna non-akar tidak memiliki akses ke volume. Jika akses dari pengguna non-akar diperlukan, pengguna akar harus mengubah mode ke 0755. Contoh perintah: sudo chmod 0755 /nfsdata
EINVAL ("Invalid argument") Kesalahan ini dapat muncul ketika klien mencoba untuk:
  • Tulis ke blob yang dibuat dari titik akhir blob.
  • Hapus blob yang memiliki snapshot atau berada dalam kontainer yang memiliki kebijakan WORM aktif (Write Once, Read Many).
  • EROFS ("Read-only file system") Kesalahan ini dapat muncul ketika klien mencoba untuk:
  • Menulis ke blob atau menghapus blob yang memiliki penyewaan aktif.
  • Menulis ke blob atau menghapus blob dalam kontainer yang memiliki kebijakan WORM aktif.
  • NFS3ERR_IO/EIO ("Input/output error") Kesalahan ini dapat muncul ketika klien mencoba membaca, menulis, atau mengatur atribut pada blob yang disimpan di tingkat akses arsip.
    OperationNotSupportedOnSymLink kesalahan Kesalahan ini dapat dikembalikan selama operasi penulisan melalui Blob Storage atau Azure Data Lake Storage Gen2 API. Menggunakan API ini untuk menulis atau menghapus tautan simbolis yang dibuat dengan menggunakan NFS 3.0 tidak diperbolehkan. Pastikan untuk menggunakan titik akhir NFS 3.0 untuk bekerja dengan tautan simbolik.
    mount: /nfsdata: bad option; Memasang program bantuan NFS dengan menggunakan sudo apt install nfs-common.
    Connection Timed Out Pastikan klien mengizinkan komunikasi keluar melalui port 111 dan 2048. Protokol NFS 3.0 menggunakan port ini. Pastikan untuk memasang akun penyimpanan dengan menggunakan titik akhir blob service dan bukan titik akhir Data Lake Storage.

    Batasan dan pemecahan masalah untuk AZNFS Mount Helper

    Lihat AZNFS Mount Helper.

    Lihat juga