Migrating S3 buckets to Inline Erasure Coding (IEC) buckets
Describes how to convert existing scheduled Erasure Coding (EC) S3 buckets to Inline
Erasure Coding (IEC) buckets using mossdb and manual volume
offload.
Starting with Data Fabric 8.2.0, you can migrate existing scheduled Erasure Coding (EC) buckets to Inline Erasure Coding (IEC) buckets without deleting or re-creating the buckets.
After a bucket is converted to IEC, objects uploaded to the bucket are written and erasure-coded inline during ingestion rather than waiting for scheduled tiering and compaction jobs.
Prerequisites and important considerations
- Data Fabric version: This procedure is supported on Data Fabric 8.2.0 and later.
- User privileges: All commands must be run as the
mapruser (or executed withsu mapr -c. - Shared-volume constraint: If an underlying volume hosts multiple S3 buckets, all buckets residing on that volume must be migrated simultaneously. You cannot migrate a subset of buckets on a shared volume.
- Service impact: After initiating the migration, this procedure
requires restarting the
s3serverservice across all S3 server nodes in the cluster to update the running configuration (step 2 below). Because thes3serverservice may be unavailable during the restart, schedule this operation during this operation during a period of low production activity or an approved maintenance window.
Procedure
Migrating buckets to Inline Erasure Coding is a multi-step process that involves an initial preparation command, executing a few cluster commands, and a finalization command.
Step 1: Initiate the migration with
mossdb.
migrateToInstantEC command against the target bucket (or
comma-separated list of buckets sharing the same
volume):su mapr -c "/opt/mapr/server/tools/mossdb manage migrateToInstantEC -buckets <bucket_name_or_list>"- For a single bucket on a dedicated
volume:
su mapr -c "/opt/mapr/server/tools/mossdb manage migrateToInstantEC -buckets bk1" - For multiple buckets sharing a
volume:
su mapr -c "/opt/mapr/server/tools/mossdb manage migrateToInstantEC -buckets \"bk22,bk23,bk24,bk25,bk26\""
The command outputs the underlying volume name (for example,
mapr.s3bucketVol.00000001) and provides the exact manual
steps required for Steps 2–5.
Step 2: Restart the S3 server service.
s3server service across all S3 nodes in your cluster so
that nodes pick up the inline EC
configuration:maprcli node services -name s3server -action restart -nodes <node1,node2,...>Step 3: Trigger a manual volume offload.
maprcli volume offload -name <volume_name> -jsonmaprcli volume offload -name mapr.s3bucketVol.00000001 -jsonStep 4: Monitor offload completion.
"Success:maprcli volume tierjobstatus -name <volume_name> -jsonExample
maprcli volume tierjobstatus -name mapr.s3bucketVol.00000001 -json
Do not proceed to Step 5 until the offload state reports
Success.
Step 5: Finalize and confirm the migration.
migrateToInstantEC command with the
postmigrationstepexecuted=true
parameter:su mapr -c "/opt/mapr/server/tools/mossdb manage migrateToInstantEC -buckets <bucket_name_or_list> -postmigrationstepexecuted=true"- Single bucket
example:
su mapr -c "/opt/mapr/server/tools/mossdb manage migrateToInstantEC -buckets bk1 -postmigrationstepexecuted=true" - Shared volume
example:
su mapr -c "/opt/mapr/server/tools/mossdb manage migrateToInstantEC -buckets bk22,bk23,bk24,bk25,bk26 -postmigrationstepexecuted=true"
Volume <volume_id> migration successful.Service restart, event recording, and background offload activation
- What restarting
s3serverdoes:Restartings3servercauses the S3 server to reload configuration and begin recording event metadata for newly written objects into the event tracking database so they can be processed by the background offloader.- Newly ingested objects are still written using standard replication (such as 3-way replication / RF3) per the volume policy - they are not immediately converted to Erasure Coding inline.
- The automated background offloader process itself is not
activated until the final migration step (re-running
mossdb manage migrateToInstantECwith-postmigrationstepexecuted=true).
- Continuous ingestion during a rolling restart:If clients ingest data through a load balancer while you perform a rolling restart across S3 server nodes:
- Writes routed to already restarted nodes have their object events recorded for future background offload processing.
- Writes routed to nodes awaiting restart continue writing via standard volume replication without event recording.
- Handling non-offloaded data:
Any data written to nodes before they are restarted—along with pre-existing data in the volume—is swept up and moved to backend Erasure Coding storage by the manual offload step (
maprcli volume offload). Once that offload succeeds and you execute the finalmossdb manage migrateToInstantEC ... -postmigrationstepexecuted=truecommand, the background offloader is fully activated to process all recorded data going forward.
Command syntax reference: mossdb manage
migrateToInstantEC
Usage: /opt/server/tools/mossdb manage migrateToInstantEC -buckets="" [-postmigrationstepexecuted=true|false]
| Parameter | Type | Required? | Description |
-buckets |
String | Yes | Comma-separated list of bucket names to migrate. Bucket names should be enclosed in double quotes if multiple buckets are listed. All buckets specified must reside on the same underlying volume. |
-postmigrationstepexecuted |
Boolean | Optional (Default: false) |
Set to true (using =true) after
completing the s3server restart, manual offload,
and tierjobstatus verification to finalize the
migration. |