Writable-Snapshots (v2) - CRUD Operations for Writable Snapshots
Introduction
The Superna Eyeglass REST API - v2 Writable-Snapshots allows for the management of writable snapshots on PowerScale OneFS clusters, providing capabilities to delete, view, create, and check the status of snapshot jobs. Writable snapshots on 9.2 or later PowerScale OneFS clusters. These features replace the legacy LiveOps SyncIQ-based solution. This can create a writable snapshot on any path and replicate the data into another path or access zone with all shares, exports, and quotas cloned into the test zone. The delete feature will delete the writable snapshot.
Use Cases:
- DR Testing
- Application upgrade testing
- Dev/ops on application development using a virtual view of production data
What Is a Writable Snapshot?
A writable snapshot takes a point-in-time copy of a source path and makes it read-write at a separate target path or Access Zone — without running a full SyncIQ failover. The clone carries over the same shares, exports, and quotas as the source, so applications pointed at the cloned path see a fully functional, independent copy of production data they can read from and write to freely, with no risk to the original.
This is useful anywhere you want a realistic copy of production data without disrupting production or requiring a full DR test: validating an application upgrade against real data, giving developers a working copy of production for testing, or exercising a recovery procedure without an actual failover event.
Writable snapshots replace the legacy LiveOps SyncIQ-based solution for this same use case, and require PowerScale OneFS 9.2 or later.
Writable Snapshots Tab (2.15.0 GUI)
Writable Snapshots is a top-level tab on the Failover page, alongside the Runs tab (see Failover). It lists each writable snapshot with its path, source path, device (cluster), and creation time, plus Delete and Create Writable Snapshot controls. The GUI maps directly onto the REST API endpoints documented below: Create Writable Snapshot calls POST /v2/writable-snapshots, the tab's list calls GET /v2/writable-snapshots, and Delete calls DELETE /v2/writable-snapshots.
How to Create a Writable Snapshot
-
Create the test Access Zone the snapshot will be presented into ahead of time, anywhere in the file system — this should be a dedicated DR-testing or dev/test zone, not a production Access Zone, and ideally one with no existing data. More than one test Access Zone can exist if you need separate DR-test and dev/test areas.
-
Attach an IP pool to that Access Zone, create a SmartConnect name for mounting it, and complete DNS dual-delegation for the zone before creating the snapshot.
-
On the Failover → Writable Snapshots tab, select Create Writable Snapshot and complete the form:
- Cluster — the source cluster to snapshot from, selected from inventory.
- Snapshot Source Path — the path to snapshot on demand.
- Copy Config — copies the shares, exports, aliases, and quotas configured under the source path into the new Access Zone along with the snapshot. Leave this selected unless you specifically want data only.
- Writable Snapshot Access Zone — the test Access Zone created in step 1.
- Writable Snapshot Path — a subfolder under the test Access Zone's base path where the snapshot is presented; copied configuration is recreated relative to this path.
-
Submit the form to launch a job — track it from the shared Jobs page. The job creates the writable snapshot and, if Copy Config was selected, copies the configuration into the new Access Zone.
-
Verify the configuration landed correctly using the PowerScale OneFS GUI, then mount the test Access Zone's IP pool using its SmartConnect name to begin testing.
cautionConfirm you're mounting the correct SmartConnect name before doing anything destructive to the data — it's easy to mount the wrong one.
How to Delete a Writable Snapshot
-
On the Failover → Writable Snapshots tab, select the snapshot to remove.
-
Choose whether to delete the snapshot and its copied configuration, or the snapshot only.
noteKeeping the configuration after deleting the snapshot's path blocks mounting that configuration until a new writable snapshot is created at the same path.
-
Confirm to launch the deletion job, tracked from the shared Jobs page.
Configuring an Isolated Network for Writable Snapshot Testing
For DR or file-system testing scenarios that need a production-like clone of data, shares, exports, Active Directory, and hosts — with zero impact to production — a writable snapshot can be presented on an isolated network with its own non-production AD and DNS, cloned from production. This is advanced PowerScale networking work; this section covers only the Eyeglass-specific steps and the high-level PowerScale/VMware steps needed to wire AD and DNS into the isolated bubble. It assumes PowerScale networking experience (firewalls, VMware hosts, AD, DNS) on your side or your organization's — Superna Support cannot assist with configuration of external devices in your infrastructure.
Prerequisites
- Eyeglass 2.5.9 or later
- PowerScale OneFS 9.3 or later
- SnapshotIQ license
- Multi-Instance Active Directory support (available in OneFS 8.2 or later) — the isolated AD is joined as a second instance of the same domain name as production, so this feature is required regardless of OneFS version.
Contact Sales@superna.net for DR services assistance if you want help planning or executing this configuration.
Configuration Steps
- Confirm network connectivity. Ensure the DR PowerScale cluster has a network interface connected to the isolated network subnet.
- Clone production AD and DNS. In vSphere, use Clone to Virtual Machine to clone the production AD and DNS VMs, then:
- Before powering on the clone: edit its VM settings and move the Network Adapter from the production VM network to the isolated VM network.
- After powering on the clone: re-IP it to match the isolated network subnet, and remove the DR PowerScale cluster's machine account from the cloned AD (it will rejoin under a new provider instance in the next step).
- On the DR PowerScale cluster, build the isolated network stack:
- Create a new Groupnet (for example,
groupnet02) pointed at the cloned DNS server's IP address. - Create a new Subnet under that Groupnet (for example,
subnet2) with the netmask, SSIP, and VLAN settings for the isolated subnet. - Create a new Access Zone (for example,
AZ2) using that Groupnet. - Create a new IP Pool in the new Subnet (for example,
pool2), scoped toAZ2, with a SmartConnect zone name for the isolated environment (for example,dr-test.domain.com).
- Create a new Groupnet (for example,
- On the cloned DNS server:
- Create a reverse lookup zone for the isolated subnet.
- Create an A record for the DR PowerScale cluster's isolated-subnet SSIP address.
- Create a DNS delegation for the new SmartConnect zone name (for example,
dr-test.domain.com) pointing at that SSIP address.
- On the DR PowerScale cluster, join the cloned AD as a second provider instance:
- Add a new AD authentication provider using the same domain name as production (for example,
domain.com), but with a distinct provider instance name (for example,isolated-domain.com), a distinct machine account (for example,isidr-c), and the isolated Groupnet (groupnet02). Use the same join credentials as the production domain. - Confirm both the production AD provider and the new cloned-AD provider instance show an Online status.
- Add the new provider instance (for example,
ISOLATED-DOMAIN.COM) to the isolated Access Zone (AZ2) as its AD provider.
- Add a new AD authentication provider using the same domain name as production (for example,
- Create the writable snapshot. Follow How to Create a Writable Snapshot above, targeting the isolated Access Zone (
AZ2) as the Writable Snapshot Access Zone, then mount it from a client on the isolated network to test data access.
Endpoints
DELETE /v2/writable-snapshots
Description:
This endpoint deletes a writable snapshot in Superna Eyeglass.
Parameters:
| Parameter | Value | Description | Parameter Type | Data Type |
|---|---|---|---|---|
| sourceSnap | required | Specifies the source snapshot to be deleted | query | string |
| targetPath | required | Target path for the writable snapshot | query | string |
| ne | required | Name of the cluster | query | string |
| deleteConfig | required | Configuration flag indicating deletion settings | query | string |
Response Codes:
- 200 OK: Successfully deleted the writable snapshot.
- default: Error payload, see response structure below.
Example Response (Success):
{
"jobId": "string",
"message": "string",
"snapshots": [
{
"created": "string",
"ne": "string",
"sourcePath": "string",
"sourceSnap": "string",
"targetPath": "string"
}
],
"success": "string"
}
Example Response (Error):
{
"code": 0,
"message": "string"
}
GET /v2/writable-snapshots
This endpoint retrieves all recent writable snapshots jobs in Superna Eyeglass.
Description:
View all recent writable snapshots jobs.
Response Codes:
- 200 OK: Returns information about all writable snapshot jobs.
- default: Error payload, see response structure below.
Example Response (Success):
{
"jobId": "string",
"message": "string",
"snapshots": [
{
"created": "string",
"ne": "string",
"sourcePath": "string",
"sourceSnap": "string",
"targetPath": "string"
}
],
"success": "string"
}
Example Response (Error):
{
"code": 0,
"message": "string"
}
POST /v2/writable-snapshots
Description:
This endpoint starts a job to create a writable snapshot in Superna Eyeglass.
Parameters:
| Parameter | Value | Description | Parameter Type | Data Type |
|---|---|---|---|---|
| ne | required | Cluster Name | query | string |
| targetPath | required | Target path for writable snapshot | query | string |
| sourcePath | required | Source path for writable snapshot | query | string |
| copyConfigFlag | required | Flag for copy config while creating writable snapshot (true/false) | query | string |
Response Codes:
- 200 OK: Status of writable snapshot job.
- default: Error payload, see response structure below.
Example Response (Success):
{
"jobId": "string",
"message": "string",
"snapshots": [
{
"created": "string",
"ne": "string",
"sourcePath": "string",
"sourceSnap": "string",
"targetPath": "string"
}
],
"success": "string"
}
Example Response (Error):
{
"code": 0,
"message": "string"
}
GET /v2/writable-snapshots/jobStatus
Description:
This endpoint retrieves the status of a writable snapshots job by ID in Superna Eyeglass.
Parameters:
| Parameter | Value | Description | Parameter Type | Data Type |
|---|---|---|---|---|
| jobId | required | Job ID | query | string |
Response Codes:
- 200 OK: Returns the status of the specified writable snapshot job.
- default: Error payload, see response structure below.
Example Response (Success):
{
"childrenDetails": [
{}
],
"finished": 0,
"id": "string",
"info": "string",
"name": "string",
"started": 0,
"state": "string",
"status": "string"
}
Example Response (Error):
{
"code": 0,
"message": "string"
}