Most of the settings for the Storage Connector service are saved in file /etc/syncp-storage/syncp-storage.yml
on the Storage Connector virtual machine. You must modify this file to configure Storage Connector to work in your environment. Complete list of available settings is available in Storage Connector configuration parameters.
- On the Storage Connector virtual machine, open the
syncp-storage.yml
file for editing:sudo vi /etc/syncp-storage/syncp-storage.yml
- In the syncplicity.ws section of the syncp-storage.yml file, replace <syncplicity access key> with the access key from the Custom Storage Settings page.
Example:accesskey: "d4jJDpO7erZEmrlKab6w"
- If your company is using the EU PrivacyRegion, your on-premise Storage Connector must be configured with the following settings:
syncplicity.ws.url: "https://xml.eu.syncplicity.com/1.1"
syncplicity.ws.external.url: "https://api.eu.syncplicity.com"
syncplicity.health.url: "https://health.eu.syncplicity.com/v1"
-
If using a proxy, set the enable/disable flag to true and specify the proxy hostname and port in the proxy section.
syncplicity: httpClient: proxy: enabled: false host: "my_proxy.mycompany.com" port: 8080
-
In the syncplicity.storage section of the syncp-storage.yml file, replace <storage type> with:
- atmos for EMC Atmos systems
- azure for Azure storage blobs
- google for Google Cloud Storage (GCS)
- fs for generic NFS v3 or v4 systems
- s3 for EMC ECS systems or AWS s3 buckets
For example, if you are configuring for Azure blob storage, enter:
syncplicity: storage: # The backend storage type. One of { fs, s3, azure, atmos, google } type: azure
- If type is atmos, configure your Atmos storage settings:
Under the atmos section of the syncp-storage.yml file, set url to the URL and port to the port which your Atmos installation listens.
Make sure that you explicitly include the port number.
Example:url: "https://atmos.internal:443"
Set token to your Atmos authentication token.
Example:token: "7ce21bbh56ek8feg0a7c23f343ad8df99/tenant"
Set secret to your Atmos secret key.
Example:secret: "poSq7g5123t1TEQp5PlWhv4SAxk="
-
If type is s3 for AWS, configure your AWS storage settings under the s3 section of the syncp-storage.yml file. Enter the name of the bucket you created, and access key and secret provided. For AWS, the secret was generated when you created the IAM user. For example:
syncplicity: storage: type: s3 # S3 configuration s3: data: # Check syncplicity.crypto.keyStore section for how to enable this or setup keystore # access: <s3 data access key> # secret: <s3 data secret key> bucket: <s3 data bucket name> image: # Check syncplicity.crypto.keyStore section for how to enable this or setup keystore # access: <s3 image-access key> # secret: <s3 image-secret key> bucket: <s3 image-bucket name> irm: # Check syncplicity.crypto.keyStore section for how to enable this or setup keystore # access: <s3 irm access key> # secret: <s3 irm secret key> bucket: <s3 irm bucket name>
-
If type is s3 for EMC ECS, configure your EMC ECS storage settings under the s3 section of the syncp-storage.yml file by providing the following information:
- Full URL of the ECS storage, including the port. Refer to your ECS Storage administrator for the exact ports being used. Default ports are 9020 for http and 9021 for https.
- Name of the bucket you created.
- Access key used for authentication, which is generated by the ECS administrator. With ECS, the access key used is typically an email address.
- Secret used for authentication, which is generated by the ECS administrator
For example:
s3 { url: "http://10.1.1.1:9020" # name of the bucket bucket: "MyStorageVault_bucket" # the s3 access key access: "syncplicity@mycompany.com" # the s3 secret secret: "put secret key here" } syncplicity: storage: type: s3 # S3 configuration s3: url: http://10.1.1.1:9020 data: # Check syncplicity.crypto.keyStore section for how to enable this or setup keystore # access: <s3 data access key> # secret: <s3 data secret key> bucket: <s3 data bucket name> image: # Check syncplicity.crypto.keyStore section for how to enable this or setup keystore # access: <s3 image-access key> # secret: <s3 image-secret key> bucket: <s3 image-bucket name> irm: # Check syncplicity.crypto.keyStore section for how to enable this or setup keystore # access: <s3 irm access key> # secret: <s3 irm secret key> bucket: <s3 irm bucket name>
NOTE: When an IP address is used in the URL, the Base URL (fully qualified URL) must be defined in the ECS admin console. The Base URL should correspond to the URL you use in the syncp-storage.yml file. The Base URL is used by ECS as part of the object address where virtual host style addressing is used and enables ECS to know which part of the address refers to the bucket and, optionally, namespace.
Add the Base URL in the ViPR console for ALL your VDCs. Otherwise, you might get upload errors, similar to the following:The request signature we calculated does not match the signature you provided. Check your Secret Access Key and signing method. For more information, see REST Authentication and SOAP Authentication for details.
As a good practice, setup the connection in a test-phase via http-protocol and only after successful connection through HTTP, configure the connection over SSL/HTTPS. When using HTTPS, you cannot use the IP-address, but should rather use an FQDN that corresponds to the SSL-certificate hosted with the S3-storage. Verify that the certificate can be validated by the Storage Connector or is added to the Storage Connector’s trusted certificates.
- If type is fs (generic NFS v3 or v4), configure your NFS storage settings:
-
In the syncplicity.storage section of the syncp-storage.yml file, add or edit the following lines and set rootdir to the mount point of your NFS v3 or v4 server on this server.'
storage: type: fs # Generic NFS v3 or v4 configuration fs: data.rootDir: /tmp image.rootDir: /tmp irm.rootDir: /tmp
Note: The monitorMountPointEnabled setting, when enabled, checks if the directory specified by syncplicity.storage.fs.rootdir is available every monitorMountPointInterval seconds. If the directory is not available and the check fails, the following message will appear in the Storage Connector log file:
2017-11-27 10:56:18,148 [E] [status] - Resource fs.data check failed. Remote mount point '/tmp/syncp1' is unavailable. '/usr/bin/checkmount.sh' exit status 0.
Make sure that syncp-storage:syncp-storage owns the mount point. To set ownership of the mount point, type the following command:chown -R syncp-storage:syncp-storage <mount_point>
-
-
If type is azure, configure your Azure storage settings under the azure section of the syncp-storage.yml file. Enter the Azure storage account name, the storage account key and the name of the Azure blob storage container.
For example:
storage: type: azure # Azure configuration azure: data: accountName: <account name> # Check syncplicity.crypto.keyStore section for how to enable this or setup keystore # accountKey: <storage account secret key> container: <container name> image: accountName: <account name> # Check syncplicity.crypto.keyStore section for how to enable this or setup keystore # accountKey: <storage account secret key> container: <container name> irm: accountName: <account name> # Check syncplicity.crypto.keyStore section for how to enable this or setup keystore # accountKey: <storage account secret key> container: <container name>
NOTE: When configuring the Storage Connector to utilize Azure blob storage, the Storage Connector server(s) should be hosted in the Azure VPC to minimize latency between the Storage Connector and the storage.
-
If type is google, configure your GCS settings under the google section of the syncp-storage.yml file. Enter the name of the bucket you created, and the JSON string with authentication credentials provided in a downloadable file when your service account key is generated (see GCS documentation).
For example:
storage: type: google # Google Storage configuration google: # Check syncplicity.crypto.keyStore section for how to enable this or setup keystore authJson: <the authentication credentials JSON for the service account> data.bucket: <data bucket name> image.bucket: <image bucket name> irm.bucket: <irm bucket name>