Tech ONTAP Blogs
Tech ONTAP Blogs
In the modern cloud landscape, organizations often struggle with "protocol silos". Traditional enterprise applications have relied on file-based storage (NFS or SMB) organized under directories, while cloud-native applications and analytics engines typically utilize object storage.
Accessing the same data across these disparate environments requires complex data transfer mechanisms, leading to increased costs, governance challenges, and significant latency. These data silos often force IT teams to maintain redundant copies of data, which complicates synchronization and increases the risk of data inconsistency. Furthermore, the lack of unified access hinders the ability of organizations to leverage their existing enterprise data for modern, object-friendly cloud services like AI training and big data analytics.
Google Cloud NetApp Volumes transforms data management through its ONTAP-Mode service level in Google Cloud Platform. By introducing NAS and S3 Duality, NetApp Volumes enables the unification of data access, allowing you to present the same underlying data as both a traditional file system and a modern object store simultaneously. This duality effectively eliminates protocol silos, enabling legacy applications using NFS or SMB to coexist seamlessly with cloud-native applications and analytics engines that require S3-compatible object storage.
NAS/S3 Duality is more than just protocol support; it is a fundamental shift in how data is consumed.
The ability to concurrently access storage as files or objects unlocks several high-value workflows:
S3 Duality can be configured with both NFS and SMB protocols allowing users to extend their data in traditional file systems across Windows and UNIX environments to object native applications.
vserver show
Vserver Type Subtype State Volume Aggregate
----------- ------- ---------- ---------- ---------- ----------
gcnv-031ca5 data default running gcnv_ aggr1
9f552fcec-s 031ca59f55
vm-01 2fcec_svm_
01_root
vserver services name-service dns create -vserver gcnv-031ca59f552fcec-svm-01 -domains cvsdemo.internal -name-servers 10.70.0.2 -state enabled
Follow the steps below to set up data duality between NFS and S3 protocols -
volume create -vserver gcnv-031ca59f552fcec-svm-01 -volume nfs_s3_data -size 10G -aggregate aggr1 -junction-path /nfs_s3_data
vserver export-policy rule create -vserver gcnv-031ca59f552fcec-svm-01 -policyname default -ruleindex 1 -protocol any -clientmatch <client_ip_cidr> -rorule sys -rwrule sys -superuser sys -anon 65534
vserver object-store-server create -vserver gcnv-031ca59f552fcec-svm-01 -object-store-server dataduality.cvsdemo.internal -is-http-enabled true -is-https-enabled false -status-admin up -listener-port 80
Note: This example uses HTTP however you can use HTTPS as well by including a certificate.vserver object-store-server bucket create -bucket nfs-s3-duality -type nas -nas-path /nfs_s3_data -vserver gcnv-031ca59f552fcec-svm-01
vserver object-store-server bucket policy add-statement -bucket nfs-s3-duality -effect allow -action GetObject,PutObject,DeleteObject,ListBucket,GetBucketAcl,GetObjectAcl,GetBucketLocation,GetBucketPolicy,PutBucketPolicy,DeleteBucketPolicy -principal - -resource nfs-s3-duality,nfs-s3-duality/
vserver object-store-server user create -vserver gcnv-031ca59f552fcec-svm-01 -user nfss3user
Note: Record the Access Code and Secret Key.vserver object-store-server group create -name nfss3usergroup -users nfss3user -vserver gcnv-031ca59f552fcec-svm-01 -policies FullAccess
vserver services name-service unix-user create -vserver gcnv-031ca59f552fcec-svm-01 -user nfsuser1 -id 1 -primary-gid 1001 -full-name "NFS User for S3 Duality"
vserver name-mapping create -vserver gcnv-031ca59f552fcec-svm-01 -direction s3-unix -position 1 -pattern nfss3user -replacement nfsuser1
Follow the steps below to set up data duality between SMB and S3 protocols.
In this example, an SMB user from an Active Directory that is part of the cvsdemo.internal domain will be used to showcase duality.
curl --request POST \
--url https://netapp.googleapis.com/v1beta1/projects/<<project_number>>/locations/asia-south1-b/storagePools/nass3duality/ontap/api/name-services/name-mappings \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--include \
--header "Content-Type: application/json" \
--header "Accept: */*" \
--header "Authorization: Basic $BASIC_AUTH" \
--data @cifscreate.json
The data block for @cifscreate.json should include the following attributes -
{
"body": {
"svm.name" : "gcnv-031ca59f552fcec-svm-01",
"name": "nass3duality",
"ad_domain.user": "<<user_with_domain_join_permissions",
"ad_domain.fqdn": "cvsdemo.internal",
"ad_domain.password": "<<password>>"
}
}
volume create -vserver gcnv-031ca59f552fcec-svm-01 -volume smb_s3_data -size 10G -aggregate aggr1 -security-style ntfs -junction-path /smb_s3_data
vserver cifs share create -vserver gcnv-031ca59f552fcec-svm-01 -share-name smb_s3_data -path /smb_s3_data
vserver object-store-server create -vserver gcnv-031ca59f552fcec-svm-01 -object-store-server dataduality.cvsdemo.internal -is-http-enabled true -is-https-enabled false -status-admin up -listener-port 80
Note: This example uses HTTP however you can use HTTPS as well by including a certificate.vserver object-store-server bucket create -bucket smb-s3-duality -type nas -nas-path /smb_s3_data -vserver gcnv-031ca59f552fcec-svm-01
vserver object-store-server bucket policy add-statement -bucket smb-s3-duality -effect allow -action GetObject,PutObject,DeleteObject,ListBucket,GetBucketAcl,GetObjectAcl,GetBucketLocation,GetBucketPolicy,PutBucketPolicy,DeleteBucketPolicy -principal - -resource smb-s3-duality,smb-s3-duality/*
vserver object-store-server user create -vserver gcnv-031ca59f552fcec-svm-01 -user smbs3user
Note: Record the Access Code and Secret Key.vserver object-store-server group create -name smbs3usergroup -users smbs3user -vserver gcnv-031ca59f552fcec-svm-01 -policies FullAccess
curl --request POST \
--url https://netapp.googleapis.com/v1beta1/projects/<<project_number>>/locations/asia-south1-b/storagePools/nass3duality/ontap/api/name-services/name-mappings \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--include \
--header "Content-Type: application/json" \
--header "Accept: */*" \
--header "Authorization: Basic $BASIC_AUTH" \
--data @namemappings.json
The data block for @namemappings.json should include the following attributes.
{
"body": {
"svm.name": "gcnv-031ca59f552fcec-svm-01",
"index": 1,
"direction": "s3-win",
"pattern": "smbs3user",
"replacement": "CVSDEMO\\\\rarvind"
}
}
The integration of ONTAP-Mode within Google Cloud NetApp Volumes represents a significant advancement in cloud storage, offering the robust data management capabilities of ONTAP as a native Google Cloud service. By implementing NAS/S3 Duality, organizations can move beyond the inefficient "copy-and-paste" data management model that creates redundant silos.
This technology facilitates a unified data strategy where the same datasets are simultaneously accessible via traditional file protocols like NFS and SMB, as well as S3 object storage. This duality not only simplifies infrastructure but also enables seamless transitions between legacy enterprise workloads and cloud-native analytics or AI applications without the need for data migration or reformatting.
Ultimately, Google Cloud NetApp Volumes empowers users to maximize the value of their data with increased agility and lower operational overhead.
Ready to transform your data strategy?
Contact your Google Cloud or NetApp representative today to learn how Google Cloud NetApp Volumes can unify your file and object data management.