Multi-Region Deployment
This guide covers deploying flexFS across multiple cloud regions with proxy groups acting as regional edge caches. This architecture reduces cross-region data transfer costs and latency for read-heavy workloads.
Architecture Overview
Section titled “Architecture Overview”In a multi-region deployment:
- Metadata and block storage reside in a primary region (e.g.,
us-east-1). - Proxy groups are deployed in each compute region to cache block data locally.
- Mount clients automatically select the lowest-latency proxy group via RTT probing.
Step 1: Register Providers and Regions
Section titled “Step 1: Register Providers and Regions”Use configure.flexfs to set up each region:
configure.flexfs create provider --code aws --name "Amazon Web Services"configure.flexfs create region --providerCode aws --code us-east-1 --name "US East (Virginia)"configure.flexfs create region --providerCode aws --code eu-west-1 --name "EU West (Ireland)"configure.flexfs create region --providerCode aws --code ap-southeast-1 --name "Asia Pacific (Singapore)"Step 2: Create Block and Meta Stores
Section titled “Step 2: Create Block and Meta Stores”Create a block store in your primary region:
configure.flexfs create block-store \ --providerCode aws --regionCode us-east-1 \ --apiCode s3 --bucket my-flexfs-blocks \ --username $USERNAME --password $PASSWORDRegister the metadata server:
configure.flexfs create meta-store \ --providerCode aws --regionCode us-east-1 \ --address meta.us-east-1.example.com:443Step 3: Deploy Proxy Servers
Section titled “Step 3: Deploy Proxy Servers”Deploy proxy.flexfs in each satellite region. On each proxy host:
proxy.flexfs init credsproxy.flexfs init systemdmanage.flexfs start proxyStep 4: Create Proxy Groups
Section titled “Step 4: Create Proxy Groups”Create a proxy group for each region:
configure.flexfs create proxy-group \ --providerCode aws --regionCode eu-west-1 \ --addresses proxy-eu-1.example.com:443,proxy-eu-2.example.com:443
configure.flexfs create proxy-group \ --providerCode aws --regionCode ap-southeast-1 \ --addresses proxy-ap-1.example.com:443Step 5: Associate Proxy Groups with Volumes
Section titled “Step 5: Associate Proxy Groups with Volumes”configure.flexfs create volume-proxy-group \ --volumeID my-volume --proxyGroupID 1
configure.flexfs create volume-proxy-group \ --volumeID my-volume --proxyGroupID 2Step 6: Mount
Section titled “Step 6: Mount”Mount clients in any region will automatically:
- Discover all proxy groups associated with the volume.
- Measure RTT to each group.
- Select the lowest-latency group.
- Fall back to direct object storage if no proxy is reachable.
mount.flexfs start my-volume /mnt/flexfsConsiderations
Section titled “Considerations”- Write path: Writes always go to the primary block store. Proxy groups serve reads from cache and perform writeback for writes.
- Cache warming: The first read of a block in a new region goes to object storage. Subsequent reads are served from the proxy cache.
- Dynamic membership: You can add or remove proxy addresses from a group while mounts are active. Mount clients will discover changes on their next RTT probe cycle.
- Multiple groups per region: Deploy multiple proxy servers in a single group for redundancy. Rendezvous hashing distributes blocks across all group members.