Using VIPs with Object Store

Explains how to use VIPs for HPE Ezmeral Object Store, similar to VIPs in NFS.

You can configure Virtual IPs (VIPs) for HPE Ezmeral Object Store just as you do for the NFS v3/v4 service. VIPs help achieve High Availability (HA) with failover; if one Object Store node fails, the VIP is automatically reassigned to another Object Server node in the pool.

Pass in the s3 service parameter to configure Object Store VIPs, exactly like you pass in the nfs4 parameter for NFSv4 VIPs. The ifconfig -a command uses the ~mc[0-255] convention to represent Object Store VIPs.

To use VIPs, use the mc alias command to create aliases using VIP or hostname mapped to VIP. If the Object Store server crashes, the assigned Object Store VIPs seamlessly failover to other Object Store servers in the given MAC pool. There might be IO failures for the duration of the VIP failover, based on the mc client retry logic. However, IO eventually starts succeeding once failover is complete.

For Object Store servers over HTTP, directly specify the VIP during alias creation. For Object Store servers over HTTPS, you can only specify hostnames (FQDN). For servers over HTTPS, configure a DNS hostname that maps to a VIP before creating an alias.

Display Object Store VIP

Use the ifconfig -a command to display the VIP.
ifconfig -a
          enp5s0f0:~mc0 Link encap:Ethernet  HWaddr e8:39:35:1b:05:72
            inet addr:10.163.163.80  Bcast:0.0.0.0  Mask:255.255.248.0
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            Memory:fbe60000-fbe7ffff

Add Object Store VIPs

Use the maprcli virtualip add command with the s3 service to add VIPs.
maprcli virtualip add -virtualip 10.163.163.80 -virtualipend 10.163.163.82 -macs "e8:39:35:1b:05:72 e8:39:35:1a:65:e2 0c:c4:7a:8e:35:ee" -netmask 255.255.248.0 -service s3 -json
  {
        "timestamp":1642577221460,
        "timeofday":"2022-01-18 11:27:01.460 GMT-0800 PM",
        "status":"OK",
        "total":0,
        "data":[

        ]
  }

List Object Store VIPs

Use the maprcli virtual ip list command to list VIPs.
maprcli virtualip list -json
  {
        "timestamp":1642577245672,
        "timeofday":"2022-01-18 11:27:25.672 GMT-0800 PM",
        "status":"OK",
        "total":0,
        "data":[
                {
                        "vip":"10.163.163.80",
                        "hn":"m2-dl2k-19-n4.mip.storage.hpecorp.net",
                        "ip":"10.163.163.168",
                        "mac":"e8:39:35:1b:05:72",
                        "nm":"255.255.248.0",
                        "AssignableTo":"e8:39:35:1b:05:72, e8:39:35:1a:65:e2, 0c:c4:7a:8e:35:ee",
                        "service":"S3"
                },
                {
                        "vip":"10.163.163.81",
                        "hn":"m2-dl2k-19-n2.mip.storage.hpecorp.net",
                        "ip":"10.163.163.166",
                        "mac":"e8:39:35:1a:65:e2",
                        "nm":"255.255.248.0",
                        "AssignableTo":"e8:39:35:1b:05:72, e8:39:35:1a:65:e2, 0c:c4:7a:8e:35:ee",
                        "service":"S3"
                },
                {
                        "vip":"10.163.163.82",
                        "hn":"m2-sm2028-05-n1.mip.storage.hpecorp.net",
                        "ip":"10.163.162.69",
                        "mac":"0c:c4:7a:8e:35:ee",
                        "nm":"255.255.248.0",
                        "AssignableTo":"e8:39:35:1b:05:72, e8:39:35:1a:65:e2, 0c:c4:7a:8e:35:ee",
                        "service":"S3"
                }
        ]
  }

Create VIP Alias Over HTTP

Use the mc alias command to create the alias.
/opt/mapr/bin/mc alias set newmoss http://10.163.163.80:9000 AZ7FQCEREA9199VQB4WG6Z2ZDSGRBXYHQKFUGPOCCAQDLTAGIUYJ2PS9HFXZG4WWSIFPEC7O4AS5ZGWT4UYGEZR88Z7Y V6FKJ22KEG1F6NB5HT6ZDQUEE
  Added `newmoss` successfully.
Test if you can create a bucket with this alias.
/opt/mapr/bin/mc mb newmoss/buck11
  Bucket created successfully `newmoss/buck11` in account default

Create VIP Alias Over HTTPS

Ensure that the alias name you want to use is a fully qualified domain name that resolves. For example:
cat /etc/hosts | grep s3server1
  10.163.163.80 s3server1.mip.storage.hpecorp.net //The alias name resolves to an IP.
Use the mc alias command to create the alias.
/opt/mapr/bin/mc alias set newmoss1 https://s3server1.mip.storage.hpecorp.net:9000 AZ7FQCEREA9199VQB4WG6Z2ZDSGRBXYHQKFUGPOCCAQDLTAGIUYJ2PS9HFXZG4WWSIFPEC7O4AS5ZGWT4UYGEZR88Z7Y V6FKJ22KEG1F6NB5HT6ZDQUEE
  Added `newmoss1` successfully.
Test if you can create a bucket with this alias.
/opt/mapr/bin/mc mb newmoss1/buck122
  Bucket created successfully `newmoss1/buck122` in account default