All Products
Search
Document Center

File Storage NAS:FAQ tentang Volume NAS

Last Updated:Jun 28, 2025

Topik ini menjawab beberapa pertanyaan umum terkait File Storage NAS (NAS) volume.

Mengapa sistem memunculkan pesan chown: Operasi tidak diizinkan ketika saya memasang volume NAS?

Masalah

Sistem menampilkan pesan chown: Operasi tidak diizinkan ketika memasang file system NAS.

Penyebab

Peran yang digunakan untuk menjalankan kontainer tidak memiliki izin untuk mengelola volume NAS.

Solusi

  1. Pengguna yang meluncurkan proses kontainer tidak memiliki izin root. Gunakan akun root untuk melakukan operasi chown dan chgrp. Jika parameter accessModes dari persistent volume (PV) diatur ke ReadWriteOnce, Anda juga dapat menggunakan securityContext.fsGroup untuk mengonfigurasi izin volume dan kebijakan perubahan kepemilikan untuk pod. Untuk informasi lebih lanjut, lihat Konfigurasikan kebijakan izin volume dan perubahan kepemilikan untuk Pod.

  2. Jika masalah tetap ada setelah menggunakan akun root, periksa apakah grup izin target mount NAS mengatur izin pengguna ke No Anonymity (no_squash). Konfigurasi ini memungkinkan pengguna root mengakses file system. Untuk informasi lebih lanjut, lihat Kelola grup izin.

Apa yang harus saya lakukan jika antrian tugas alicloud-nas-controller penuh dan PV tidak dapat dibuat saat saya menggunakan volume NAS yang disediakan secara dinamis?

Masalah

Ketika menggunakan volume NAS yang disediakan secara dinamis, jika kecepatan pembuatan subdirektori lebih cepat daripada kecepatan penghapusan subdirektori, antrian tugas alicloud-nas-controller mungkin penuh sehingga PV tidak dapat dibuat.

Penyebab

Parameter reclaimPolicy diatur ke Delete dan parameter archiveOnDelete diatur ke false dalam konfigurasi StorageClass yang memasang volume NAS yang disediakan secara dinamis.

Solusi

Atur archiveOnDelete ke true. Dengan cara ini, ketika PV dihapus, hanya nama subdirektori yang dipasang dalam file system NAS yang diubah. File dalam subdirektori tidak dihapus.

Anda harus menghapus file-file ini sendiri. Misalnya, Anda dapat mengonfigurasi node untuk secara otomatis menghapus file di direktori root berdasarkan jadwal, atau memulai beberapa pod untuk menghapus file dengan format tertentu dalam subdirektori secara bersamaan.

Mengapa waktu yang diperlukan untuk memasang volume NAS begitu lama?

Masalah

Waktu yang diperlukan untuk memasang volume NAS begitu lama.

Penyebab

Jika kondisi berikut terpenuhi, operasi chmod atau chown dilakukan ketika volume dipasang, yang meningkatkan waktu yang diperlukan.

  • Parameter AccessModes diatur ke ReadWriteOnce dalam template persistent volume (PV) dan persistent volume claim (PVC).

  • Parameter securityContext.fsGroup diatur dalam template aplikasi.

Solusi

  • Jika parameter securityContext.fsGroup diatur dalam template aplikasi, hapus parameter fsGroup dalam bagian securityContext.

  • Jika ingin mengonfigurasi ID pengguna (UID) dan mode file dalam direktori yang dipasang, Anda dapat secara manual memasang direktori ke instance Elastic Compute Service (ECS). Setelah itu, Anda dapat menjalankan perintah chown dan chmod melalui CLI dan menyediakan volume NAS melalui plugin CSI. Untuk informasi lebih lanjut tentang cara menggunakan plugin CSI untuk memasang volume NAS, lihat Pasang volume NAS yang disediakan secara statis atau Pasang volume NAS yang disediakan secara dinamis.

  • Selain metode sebelumnya, untuk kluster Kubernetes 1.20 atau yang lebih baru, Anda dapat mengatur parameter fsGroupChangePolicy ke OnRootMismatch. Dengan cara ini, operasi chmod atau chown hanya dilakukan ketika sistem meluncurkan pod untuk pertama kalinya. Masalah ini tidak terjadi ketika Anda memasang volume NAS setelah peluncuran pertama selesai. Untuk informasi lebih lanjut tentang fsGroupChangePolicy, lihat Tetapkan konteks keamanan untuk pod atau kontainer.

Apa yang harus saya lakukan jika saya tidak dapat membuat atau mengubah direktori dalam volume NAS?

Masalah

Anda tidak dapat membuat atau mengubah direktori dalam volume NAS.

Penyebab

Pengguna non-root tidak memiliki izin untuk membuat atau mengubah direktori dalam PV.

Solusi

Anda dapat memilih salah satu metode berikut untuk menjalankan perintah chmod atau chown untuk mengubah izin pada direktori yang dipasang:

  • Luncurkan init container dengan hak istimewa root, pasang PV, dan kemudian jalankan perintah chmod atau chown untuk mengubah izin pada direktori yang dipasang. Setelah itu, Anda dapat membuat dan mengubah direktori dalam PV.

  • Atur parameter fsGroupChangePolicy ke OnRootMismatch. Dengan cara ini, ketika sistem meluncurkan pod untuk pertama kali, sistem menjalankan perintah chmod atau chown untuk mengubah izin pada direktori yang dipasang. Setelah itu, Anda dapat membuat dan mengubah direktori dalam PV.

Mengapa sistem memunculkan pesan unknown filesystem type "xxx" ketika saya memasang volume NAS?

Masalah

Sistem menampilkan pesan unknown filesystem type "xxx" ketika memasang volume NAS.

Penyebab

Dependensi volume NAS tidak diinstal pada node tempat aplikasi diterapkan.

Solusi

Periksa apakah volume NAS dikonfigurasi dengan benar.

Mengapa sistem memunculkan pesan NFS Stale File Handle ketika klien membaca atau menulis data ke volume NAS?

Masalah

Sistem menampilkan pesan NFS Stale File Handle ketika klien membaca atau menulis data ke volume NAS.

Penyebab

NAS tidak menjamin konsistensi data setelah Anda memasang volume NAS ke kontainer. Anggaplah sebuah volume NAS dipasang ke dua klien. Klien 1 membuka file dalam volume NAS untuk mendapatkan deskriptor file (FD) dari file tersebut. Jika Klien 2 menghapus file tersebut, Klien 1 tidak dapat membaca atau menulis file tersebut dan sistem menampilkan pesan NFS Stale File Handle.

Solusi

Anda perlu menyelesaikan masalah konsistensi data berdasarkan skenario bisnis Anda.

Apa yang harus saya lakukan jika pod yang menggunakan dua PVC untuk memasang dua volume NAS berbeda tetap berada dalam status ContainerCreating?

Masalah

Anda gagal meluncurkan pod yang menggunakan dua PVC untuk memasang volume NAS dan pod tetap berada dalam status ContainerCreating. Pod dapat diluncurkan jika Anda mengonfigurasi pod untuk menggunakan hanya salah satu PVC.

Penyebab

Dua PV yang terkait dengan dua PVC menggunakan nilai spec.csi.volumeHandle yang sama. Akibatnya, kubelet tidak dapat membedakan kedua PV ketika memproses logika pemasangan PV.

Solusi

Atur parameter spec.csi.volumeHandle dari setiap PV ke nama aktual PV.

Bagaimana cara menggunakan CSI untuk memasang file system NAS yang memiliki TLS diaktifkan?

NAS menggunakan TLS untuk memastikan keamanan transmisi data antara klien NAS dan layanan NAS serta mencegah pencurian dan pemalsuan data. CSI memungkinkan Anda menggunakan klien NAS (aliNAS) dari Alibaba Cloud untuk memasang volume dan mengaktifkan TLS.

Perhatian

  • Klien NAS menggunakan proses stunnel sebagai pembungkus enkripsi TLS. Untuk aplikasi dengan throughput tinggi, proses stunnel mengonsumsi banyak sumber daya CPU untuk melakukan enkripsi dan dekripsi. Dalam kasus ekstrem, setiap operasi pemasangan menempati satu core. Untuk informasi lebih lanjut, lihat Enkripsi dalam transit untuk file system NFS.

Prosedur

  1. Instal klien NAS.

    Modifikasi ConfigMap komponen csi-plugin untuk me-restart csi-plugin.

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: csi-plugin
      namespace: kube-system
    data:
      cnfs-client-properties: |
        alinas-utils=true
    EOF
    
    kubectl rollout restart ds -n kube-system csi-plugin
  2. Pasang volume NAS yang disediakan secara statis atau volume NAS yang disediakan secara dinamis berdasarkan kode contoh berikut:

    Pasang volume NAS yang disediakan secara dinamis

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-tls
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    - tls   # Tambahkan opsi pemasangan TLS.
    parameters:
      volumeAs: subpath
      server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com:/k8s/"
      mountProtocol: alinas  # Nyatakan untuk menggunakan klien aliNAS untuk memasang volume.
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-tls
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alicloud-nas-tls
      resources:
        requests:
          storage: 20Gi

    Parameter

    Deskripsi

    parameters.mountProtocol

    Atur parameter ini ke alinas untuk menggunakan klien aliNAS untuk memasang volume. Secara default, parameter ini dibiarkan kosong dan NFS digunakan untuk memasang volume.

    mountOptions

    Tambahkan opsi tls untuk mengaktifkan TLS. Tambahkan opsi ini hanya ketika mountProtocol diatur ke alinas. Secara default, TLS dinonaktifkan.

    Pasang volume NAS yang disediakan secara statis

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nas-tls
      labels:
        alicloud-pvname: pv-nas-tls
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeHandle: pv-nas   # Masukkan nama PV.
        volumeAttributes:
          server: "2564f4****-ysu87.cn-shenzhen.nas.aliyuncs.com"
          path: "/csi"
          mountProtocol: alinas # Nyatakan untuk menggunakan klien aliNAS untuk memasang volume.
      mountOptions:
      - nolock,tcp,noresvport
      - vers=3
      - tls # Tambahkan opsi pemasangan TLS.
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-nas-tls
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-nas-tls

    Parameter

    Deskripsi

    spec.csi.volumeAttributes.mountProtocol

    Atur parameter ini ke alinas untuk menggunakan klien aliNAS untuk memasang volume. Secara default, parameter ini dibiarkan kosong dan NFS digunakan untuk memasang volume.

    spec.mountOptions

    Tambahkan opsi tls untuk mengaktifkan TLS. Tambahkan opsi ini hanya ketika mountProtocol diatur ke alinas. Secara default, TLS dinonaktifkan.

Apa yang harus saya lakukan jika pelepasan volume NAS mengalami timeout dan pod tetap berada dalam status Terminating?

Masalah

Ketika Anda menghapus pod dengan volume NAS yang dipasang, volume NAS tidak dapat dilepaskan, dan pod tetap berada dalam status Terminating.

Penyebab

Komponen csi-plugin langsung memasang direktori /var/run. Jalankan perintah berikut. Jika outputnya tidak kosong, komponen csi-plugin langsung memasang direktori /var/run.

kubectl get ds -n kube-system csi-plugin -ojsonpath='{.spec.template.spec.volumes[?(@.hostPath.path=="/var/run/")]}'

Solusi

Jalankan perintah berikut untuk secara manual memperbaiki file YAML csi-plugin guna menyelesaikan masalah:

kubectl patch -n kube-system daemonset csi-plugin -p '
spec:
  template:
    spec:
      containers:
        - name: csi-plugin
          volumeMounts:
            - mountPath: /host/var/run/efc
              name: efc-metrics-dir
            - mountPath: /host/var/run/ossfs
              name: ossfs-metrics-dir
            - mountPath: /host/var/run/
              $patch: delete
      volumes:
        - name: ossfs-metrics-dir
          hostPath:
            path: /var/run/ossfs
            type: DirectoryOrCreate
        - name: efc-metrics-dir
          hostPath:
            path: /var/run/efc
            type: DirectoryOrCreate
        - name: fuse-metrics-dir
          $patch: delete'