Deploying and Configuring Global Namespace
The following example will show how to deploy and configure a Global Namespace across three sites, Site A, Site B and Site C. It will leverage different vendors and capacities across the different sites. An Object bucket in AWS is used as the shared bucket as well as archive, backup and disaster recovery destination.
- Site A: Anvil and DSX – virtualized in VMware ESXi with local NVMe storage and EMC Isilon
- Site B: Anvil and DSX – virtualized in VMware ESXi with local SSD storage and NetApp 7-mode
- Site C: Anvil and DSX in Amazon AWS. DSX with local EBS volumes
If the data is going to be accessed from Windows or the SMB protocol, ensure that each site is joined to the same Active Directory domain / domain forest.
The following sections detail each step of the deployment and configuration process:
- Installing Anvil and DSX
- Configuring local storage
- Setting a user-friendly name for each site (optional)
- Configuring a shared bucket
- Creating a global share
Installing Anvil and DSX
Install Anvil and DSX on each site. This can be done concurrently across all sites.
This step will take between 10-20 minutes depending on the environment being used.
See the installation Guide for additional help with installing the product.
Configuring Local Storage
Each site requires local file storage, such as a DSX with local block storage or a local NAS export to store data being used on that site. See the Installation Guide for additional help with installing the product.
Set a User-Friendly Name for Each Site (Optional)
Each site has a cluster name set at install time; it can be found in the top navigation bar in the GUI or on the CLI using cluster-view command. The site cluster name can be changed after the initial installation. The name can be used in place of IP address during the replication setup. Setting a descriptive name will also make it easier to manage multiple sites.
SITE A | |
---|---|
> local-site-update --name SITE-A | |
ID: | 2c2a48ff-a503-4180-992d-241d1901269b |
Name: | SITE-A |
Internal ID: | 0 |
Management address: | 172.27.100.132 |
Data address: | 172.27.100.132 |
<additional output deleted...> | |
SITE B | |
> local-site-update --name SITE-B | |
<similar output as per site A> | |
SITE C | |
> local-site-update --name SITE-C | |
<similar output as per site A> |
Configuring a Shared Bucket (required)
Any supported object storage vendor/cloud can be used as the shared bucket. The shared bucket is used for cross-site data transfers and is not used for metadata traffic. A bucket must be added as a shared bucket from all participating sites, including the first site. When a site is adding the shared bucket, a registration token is added to the bucket to simplify the setup of the Global share.
The bucket can also be used for tiering and archiving destinations as well as a general “overflow” bucket in case the local NAS runs out of space. Only a single bucket is required and access to this bucket must be allowed for all Anvil and DSX nodes from all participating sites – access to the bucket can be limited to only the Anvil and DSX nodes as a security best practice.
It is also supported to have multiple, shared local object storage on each site, that can be beneficial in reducing cross-site data traffic with some workflows.
Adding a shared bucket using the GUI
Navigate to Infrastructure & Data -> Storage Systems and click on + Volume for the desired Object/Cloud Storage System. This will bring up the Add Volume wizard. Make sure to check the Shared Volume flag when adding the bucket into the configuration.
For the second and more sites, it will come up with a red warning color, indicating that it is in use by another Anvil. This is expected in a multi-site configuration. To proceed check the Shared Volume checkbox or to navigate back and select another bucket if the incorrect one was selected.
Confirm the settings and proceed with Volume add.
Adding a shared bucket using the CLI
The flag ‘--shared’ is available as part of ‘object-volume-add’ to indicate that this bucket is a shared resource. If this flag is not used after the initial site configuration, then the second and third site will not be able to add the bucket as an object-volume. To keep the configuration simple, the same Storage System name has been used (AWS) on all three sites and the bucket name in Amazon S3 is pm-global-1.
Configuring the shared object volume using the admin CLI:
SITE A | |
---|---|
> object-volume-add --node-name AWS --logical-volume-name pm-global-1 | |
ID: | 34f9b63a-1e07-47df-a245-1e5d7c152385 |
Name: | AWS::pm-global-1 |
Internal ID: | 268435473 |
Logical volume name: | pm-global-1 |
State: | OK |
<additional output deleted...> | |
SITE B | |
> object-volume-add --shared --node-name AWS --logical-volume-name pm-global-1 | |
<similar output as per site A> | |
SITE C | |
> object-volume-add --shared --node-name AWS --logical-volume-name pm-global-1 | |
<similar output as per site A> |
Create a Global Share
Create a new share or use an existing share and turn on ‘share-replication’ which will bi-directionally replicate all metadata changes to the share to all participating sites. The ‘share-replication’ command must be run on the site where the share was originally created and the share that is being setup for replication cannot exist on the target site. As part of the ‘replication-create’ flow, the share will be created on the remote site and then immediately populated with a continuous stream of metadata.
The next step takes an existing share Home and creates a Global Namespace between Site A, Site B and Site C.
Create a global share using the GUI/CLI
The following instructions creates the share using the CLI.
The ‘--interval’ flag is not required; it will default to 5 seconds which is the value used below. The command will prompt for password for the specified user (admin in this example).
SITE A | |
---|---|
> share-create --name Apps --path /apps | |
ID: | da0770fa-866e-4bba-a20f-91ed5277de96 |
Name: | Home |
Internal ID: | 62 |
State: | PUBLISHED |
Path: | /home |
<additional output deleted...> | |
Replication participants: | |
ID: | 8db408d1-b9b5-47c3-a9ee-881bdb82482f |
Participant share internal ID: | 62 |
Participant site name | SITE-A |
Participant site management address: | 10.200.79.80 |
Participant site data address | 10.200.79.80 |
Participant ID: | 0 |
> share-replication-create --share-name Home --interval 5 --site-name SITE-B --site-username admin | |
Enter site password: ************** success |
|
> share-replication-create --share-name Home --interval 5 --site-name SITE-C --site-username admin | |
Enter site password: ************** success |
|
> share-list --name Home | |
ID: | da0770fa-866e-4bba-a20f-91ed5277de96 |
Name: | Home |
Internal ID: | 62 |
State: | PUBLISHED |
Path: | /home |
All applied objectives: | |
<additional output deleted...> | |
Export options: [Subnet: *, Access permissions: RW, Root-squash: false] | |
Participant ID: | 0 |
Replication participants: | |
ID: | 8db408d1-b9b5-47c3-a9ee-881bdb82482f |
Participant share internal ID: | 62 |
Participant site name | SITE-A |
Participant site management address: | 10.200.79.80 |
Participant site data address | 10.200.79.80 |
Participant ID: | 0 |
ID: | 8d99bd87-2570-406b-9426-52855b600d80 |
State: | CREATED |
Participant share internal ID: | 9 |
Participant site name: | SITE-B |
Participant site management address: | 10.200.79.80 |
Participant site data address | 10.200.79.80 |
Participant ID: | 1 |
Replication interval: | 5 seconds |
<additional output deleted...> | |
SITE B | |
Login to site B and verify that the share Home is now available and has three participants, repeat on site C. | |
> share-list --name Home | |
ID: | e1933ece-31d7-4e12-9de1-9c41158ed2fc |
Name: | HOME |
Internal ID: | 9 |
State: | PUBLISHED |
Path: | /home |
All applied objectives: | |
<additional output deleted...> | |
Export options: [Subnet: *, Access permissions: RW, Root-squash: false] | |
Participant ID: | 1 |
Replication participants: | |
ID: | a4dac22b-55f2-4e45-8156-0806d2aad037 |
State: | CREATED |
Participant share internal ID: | 62 |
Participant site name: | SITE-A |
Participant site management address: | 10.200.79.80 |
Participant site data address | 10.200.79.80 |
Participant ID: | 0 |
Replication interval: | 5 seconds |
ID: | a4dac22b-55f2-4e45-8156-0806d2aad037 |
Participant share internal ID: | 9 |
Participant site name: | SITE-B |
Participant site management address: | 10.200.79.80 |
Participant site data address | 10.200.79.80 |
Participant ID: | 1 |
<additional output deleted...> | |
SITE C | |
> share-list --name Home | |
<Similar output as per site B> |