Introduction
Many organizations are using external storage with the virtual appliance alone, to increase capabilities and support high request loads without increase virtual machine size. This is because files are backed-up to external storage instead of remaining within the virtual appliance.
This page describes how to configure Votiro Cloud cluster to work with external storage.
Solution
Prerequisites
Before you start, ensure that any external storage server:
n | Is reachable from your virtual appliance. |
n | Read / Write permissions are granted to user 1000 for the relevant path. |
Procedure
This procedure includes instructions and verification checks to ensure that your virtual appliance is configured to work with your external storage.
Note
When using external storage, the customer is responsible for file retention and deletion.
Files won’t be deleted according to files history retention and will be kept forever or until they are deleted manually.
Declare a Mount
To declare a mount in all of the cluster's nodes, follow these steps:
1. | Add folder /data/externalfs/nfsshare, using the following command: |
mkdir -p /data/externalfs/nfsshare
2. | Change the owner of folder /data/externalfs/nfsshare to user 1000, using the following command: |
chown 1000:1000 /data/externalfs/nfsshare
3. | Set Read / Write permissions on folder /data/externalfs/nfsshare, using the following command: |
chmod -R 755 /data/externalfs/nfsshare
4. | In this step you will add a mount to the folder /data/externalfs/nfsshare. |
a. | Create mount, using the following command: |
mount -t nfs SERVER_IP:NFS_EXPORT_FOLDER /data/externalfs/nfsshare
b. | Add mount to /etc/fstab, using the following command: |
SERVER_IP:NFS_EXPORT_FOLDER /data/externalfs/nfsshare nfs defaults 0 0
Replace the place holders above as follows:
t | SERVER_IP with the IP address, for example 10.130.1.97. |
t | NFS_EXPORT_FOLDER with the path to the external server. |
For example:
mount -t nfs 10.130.1.97:/data/nfsshare /data/externalfs/nfsshare
Add External Storage Path
To add an external storage path to the configuration, follow these steps:
1. | Edit blob-config. |
2. | Set the value of externalStorageRootPath to "/externalblobs/nfsshare". |
Restart Pods
1. | Restart mng-service-blob, using the following command: |
kubectl delete pod -l app=mng-service-blob -n votiro
2. | Restart mng-blob-storage-manager, using the following command: |
kubectl delete pod -l app=mng-blob-storage-manager -n votiro
Note
It may take up to 10 minutes for the file storage location to switch to the external configuration.
Troubleshooting
This section contains troubleshooting steps to take when encountering problems configuring external NFS storage.
Issue 1: Windows Server NFS sharing permission
Symptoms
After mounting the NFS share, when you list the /data/externalfs directory, the permissions are assigned to nobody.
[root@sfg ~]# mount -t nfs 10.10.10.50:/nfsshare /data/externalfs/nfsshare
[root@sfg ~]# ls -l /data/externalfs
total 1
drwxr-xr-x. 2 nobody nobody 64 May 12 10:47 nfsshare
Even if you try to force change the owner and group using chown 1000:1000, you will get the following error:
[root@sfg ~]# chown 1000:1000 -R /data/externalfs
chown: changing ownership of ‘/data/externalfs/nfsshare’: Permission denied
Solution
If you are using Windows Server as NFS, please follow this link to configure your Windows Server as a NFS server: Deploy Network File System
After configuring your Windows Server as a NFS server, follow these steps to allow root access on the shared folder:
1. | Right click on the nfsshare folder on your Windows Server and select Properties: |
2. | Select the NFS Sharing tab, and then select Manage NFS Sharing...: |
3. | In the NFS Advanced Sharing window that opens, check the box Share this folder and leave the rest of the options as is. Then select Permissions. |
4. | In the NFS Share Permissions window, check the box Allow root access. Then click on OK to save the configuration. |
5. | Restart the Server for NFS service for the changes to take effect. |
6. | Run the chown 1000:1000 command again on SFG to verify that the user permission can be changed successfully: |
[root@sfg ~]# chown 1000:1000 -R /data/externalfs
[root@sfg ~]# ls -l /data/externalfs/
total 1
drwxr-xr-x. 3 sgvotiroadmin sgvotiroadmin 3 May 11 17:12 nfsshare
Note
In this example, sgvotiroadmin is the username that I use during the first login via putty to SFG.
Your username may vary according to what you have created during the initcluster phase.
Issue 2: Missing metadata in blob-config
Symptoms
After changing the blob-config, the metadata portion might not be able to populate correctly.
Solution
To verify the blob-config, run the following command:
kubectl edit configmap blob-config -n votiro
Scroll down to the metadata section - the externalStorageRootPath may appear blank. Edit the file to ensure that this string is present. Be careful to preserve the commas (,) before and after the string:
,"externalStorageRootPath":"/externalblobs/nfsshare",
Comments
0 comments
Please sign in to leave a comment.