Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

NFSv3 support

NFS 3.0 protocol support on Azure Blob storage is now in Preview. This service is best suited for large scale read-heavy sequential access workload where data will be ingested once and minimally modified further. E.g. large scale analytic data, backup and archive, NFS apps for media rendering, and genomic sequencing etc. It offers lowest total cost of ownership.

Feature Status: Alpha

Supported OS: Linux

Supported CSI driver version: v0.7.0

eastus, centralus, westcentralus, australiasoutheast, northeurope, ukwest, koreacentral, koreasouth, canadacentral

Prerequisite

az feature register --name AllowNFSV3 --namespace Microsoft.Storage
az feature register --name PremiumHns --namespace Microsoft.Storage
az provider register --namespace Microsoft.Storage
  • install CSI driver
  • Create a Premium_LRS Azure storage account with following configurations to support NFS 3.0
    • account kind: BlockBlobStorage
    • Replication: Locally-redundant storage (LRS)
    • secure transfer required(enable HTTPS traffic only): false
    • select virtual network of agent nodes in Firewalls and virtual networks
    • Hierarchical namespace: Enabled
    • NFS V3: Enabled

How to use NFS feature

  • Create an Azure File storage class

specify storageAccount and protocol: nfs in storage class parameters
for more details, refer to driver parameters

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: blob-nfs
provisioner: blob.csi.azure.com
parameters:
  resourceGroup: EXISTING_RESOURCE_GROUP_NAME  # optional, only set this when storage account is not in the same resource group as agent node
  storageAccount: EXISTING_STORAGE_ACCOUNT_NAME
  protocol: nfs

run following command to create a storage class:

wget https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/example/storageclass-blob-nfs.yaml
# set `storageAccount` in storageclass-blob-nfs.yaml
kubectl create -f storageclass-blob-nfs.yaml

Example

  • Create a deployment with NFSv3 on Azure storage
kubectl create -f https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/example/nfs/statefulset.yaml
  • enter pod to check
$ exec -it statefulset-blob-0 bash
# df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda1                                                                                 29G   11G   19G  37% /etc/hosts
accountname.blob.core.windows.net:/accountname/pvc-cce02240-5d13-4bcb-b9eb-f9c7eeaaa640  256T     0  256T   0% /mnt/blob
...
# ls -lt
total 2
-rw-r--r-- 1 root root 1120 Sep  3 06:52 outfile