This operation creates a volume on a specified gateway. This operation is supported only for the gateway-cached volume architecture.
The size of the volume to create is inferred from the disk size. You can choose to preserve existing data on the disk, create volume from an existing snapshot, or create an empty volume. If you choose to create an empty gateway volume, then any existing data on the disk is erased.
In the request you must specify the gateway and the disk information on which you are creating the volume. In response, AWS Storage Gateway creates the volume and returns volume information such as the volume Amazon Resource Name (ARN), its size, and the iSCSI target ARN that initiators can use to connect to the volume target.
Access
public
Parameters
Parameter |
Type |
Required |
Description |
---|---|---|---|
|
Optional |
An associative array of parameters that can have the following keys:
|
Returns
Type |
Description |
---|---|
A |
Examples
Volumes and Snapshots
$ec2 = new AmazonEC2(); $sg = new AmazonStorageGateway(); // Get network interface ID $response = $sg->describe_gateway_information(array('GatewayARN' => $gateway_arn)); var_dump($response->isOK()); $network_interface_id = (string) $response->body->GatewayNetworkInterfaces->Ipv4Address; // Get local disk $response = $sg->list_local_disks(array('GatewayARN' => $gateway_arn)); var_dump($response->isOK()); $disks = $response->body->DiskId()->map_string(); $disk_id = $disks[1]; // List iSCSI volumes $response = $sg->list_volumes(array('GatewayARN' => $gateway_arn)); var_dump($response->isOK()); // Add iSCSI volume $response = $sg->create_stored_iscsi_volume(array( 'GatewayARN' => $gateway_arn, 'DiskId' => $disk_id, 'NetworkInterfaceId' => $network_interface_id, 'PreserveExistingData' => true, 'TargetName' => 'aws-sdk-php-test-volume-01', )); var_dump($response->isOK()); $volume_arn = (string) $response->body->VolumeARN; $target_arn = (string) $response->body->TargetARN; // Wait until volume is available do { sleep(20); echo '.'; $response = $sg->describe_stored_iscsi_volumes(array('VolumeARNs' => array($volume_arn))); $status = $response->body->VolumeStatus()->map_string(); $status = (string) reset($status); } while ($status !== 'AVAILABLE'); // List iSCSI volumes $response = $sg->list_volumes(array('GatewayARN' => $gateway_arn)); var_dump($response->isOK()); // Update snapshot schedule $response = $sg->update_snapshot_schedule(array( 'VolumeARN' => $volume_arn, 'StartAt' => 0, 'RecurrenceInHours' => 24, "Description" => 'daily snapshot', )); var_dump($response->isOK()); // Describe snapshot schedule $response = $sg->describe_snapshot_schedule(array( 'VolumeARN' => $volume_arn, )); var_dump($response->isOK()); // Update chap credentials $response = $sg->update_chap_credentials(array( 'TargetARN' => $target_arn, 'SecretToAuthenticateInitiator' => '111111111111', 'InitiatorName' => 'example-initiator', 'SecretToAuthenticateTarget' => '222222222222', )); var_dump($response->isOK()); // Describe chap credentials $response = $sg->describe_chap_credentials(array( 'TargetARN' => $target_arn, )); var_dump($response->isOK()); // Delete chap credentials $response = $sg->delete_chap_credentials(array( 'TargetARN' => $target_arn, 'InitiatorName' => 'example-initiator', )); var_dump($response->isOK()); // Delete iSCSI volume $response = $sg->delete_volume(array( 'VolumeARN' => $volume_arn, )); var_dump($response->isOK()); // List iSCSI volumes $response = $sg->list_volumes(array('GatewayARN' => $gateway_arn)); var_dump($response->isOK());
Source
Method defined in services/storagegateway.class.php | Toggle source view (6 lines) | View on GitHub