| layout | default |
|---|---|
| title | Everpure FlashArray for AWS Outposts - Quick Start Guide |
This guide covers connecting EC2 instances on AWS Outposts to Everpure FlashArray for both data and boot volumes using NVMe-TCP or iSCSI protocols.
For detailed explanations and troubleshooting: See the AWS Outposts external storage documentation
{% include quickstart/disclaimer.md %}
AWS Outposts (Racks and 2U Servers) now support external block storage from Everpure FlashArray.
| Protocol | Port | Use Case |
|---|---|---|
| NVMe-TCP | 4420 | High-performance workloads, modern deployments |
| iSCSI | 3260 | Broad compatibility, Windows/Linux support |
| Outpost Type | Connectivity | Protocols |
|---|---|---|
| Outposts Rack (42U) | Local Gateway (LGW) | iSCSI, NVMe-TCP |
| Outposts Server (2U) | Local Network Interface (LNI) | iSCSI, NVMe-TCP |
| Method | Description | Use Case |
|---|---|---|
| SANboot | Direct boot from FlashArray via iPXE/iSCSI | Persistent VMs, databases, production |
| Localboot | Copies volume to local instance storage | VDI, dev/test, ephemeral workloads |
- AWS Outposts Rack or Server deployed and connected
- Everpure FlashArray accessible from EC2 instances via:
- Racks: Local Gateway (LGW) routing to on-premises network
- Servers: Local Network Interface (LNI) with L2 connectivity to on-premises network
- VPC with subnet on the Outpost
- Supported AMI for external storage
Note: Each EC2 instance has its own IQN (iSCSI) or NQN (NVMe) initiator identity. When creating Host entries on the FlashArray, use the EC2 instance's initiator identity, not the physical Outpost server.
Configure the FlashArray to recognize the EC2 instance and provision storage. You can use either the GUI or CLI.
Create Host Entry:
- Log into Everpure FlashArray GUI
- Navigate to Storage → Hosts
- Create a new host with the EC2 instance identifier
For NVMe-TCP:
- Set Personality to
NVMe - Add the Initiator NQN (format:
nqn.2014-08.org.nvmexpress:uuid:<unique-id>) - Note the Target NQN and Target Portal IPs (port 4420)
For iSCSI:
- Set Personality to
iSCSI - Add the Initiator IQN (format:
iqn.YYYY-MM.com.amazon:<identifier>) - Note the Target IQN and Target Portal IPs (port 3260)
Create and Map Volumes:
- Navigate to Storage → Volumes
- Create volume(s) with appropriate size
- Connect volume(s) to the host entry
Run these commands from any workstation with SSH access to the FlashArray management IP.
# SSH to FlashArray
ssh pureuser@<array-ip>
# Create host with NVMe-TCP personality
purehost create --personality nvme \
--nqnlist nqn.2014-08.org.nvmexpress:uuid:ec2-instance-01 \
ec2-instance-01
# Or create host with iSCSI personality
purehost create --personality iscsi \
--iqnlist iqn.2024-01.com.amazon:ec2-instance-01 \
ec2-instance-01
# Create a data volume (e.g., 100GB)
purevol create --size 100G ec2-instance-01-data
# Connect volume to host
purehost connect --vol ec2-instance-01-data ec2-instance-01
# Verify connection
purevol list --connect ec2-instance-01-dataTip: You can also use the Pure Storage Python SDK or REST API from your workstation for automation.
- Navigate to EC2 → Instances → Launch instances
- Name: Enter instance name
- AMI: Select a supported AMI for external storage
- Instance Type: Select a supported instance type
- Network Settings:
- Select VPC and Outpost subnet
- Outposts Servers only: Create LNI in Advanced Network settings
- Configure Storage → External storage volumes settings → Edit:
- Storage network protocol: NVMe/TCP
- Initiator NQN: Enter the NQN configured on FlashArray
- Click Add NVMe/TCP Target:
- Target IP: FlashArray portal IP
- Target Port:
4420 - Target NQN: FlashArray subsystem NQN
- Repeat for each portal (multipath)
- Storage network protocol: iSCSI
- Initiator IQN: Enter the IQN configured on FlashArray
- Click Add iSCSI Target:
- Target IP: FlashArray portal IP
- Target Port:
3260(or4420) - Target IQN: FlashArray target IQN
- Repeat for each portal (multipath)
- Advanced Details: Review auto-generated user data
- Click Launch instance
# List NVMe devices
sudo nvme list
# Check subsystem connections
sudo nvme list-subsys# Check iSCSI sessions
sudo iscsiadm -m session -P3
# List block devices
lsblk# List disks
Get-Disk
# For iSCSI sessions
Get-IscsiSessionAWS Outposts supports booting EC2 instances from Everpure FlashArray volumes. The AWS Console handles iPXE user-data generation automatically when you configure external boot volumes during instance launch—no manual iPXE scripting required.
AWS Sample Tooling: aws-samples/sample-outposts-third-party-storage-integration
| Method | Description | Use Case |
|---|---|---|
| SANboot | Direct boot from FlashArray via iPXE/iSCSI | Persistent VMs, databases, production |
| Localboot | Copies volume to local instance storage at boot | VDI, dev/test, ephemeral workloads |
SANboot Benefits:
- Persistent storage across instance stop/start
- Full Everpure features (snapshots, replication, SafeMode)
- Consistent boot environment
Localboot Benefits:
- Local NVMe performance after initial hydration
- Source volume unchanged (golden image pattern)
- Note: Local storage is ephemeral—data lost on instance stop/terminate
Important: Windows instances do not support Localboot via NVMe-over-TCP. Use iSCSI for Windows Localboot.
From an existing AMI:
# Clone the AWS sample repo (run from your workstation)
git clone https://github.com/aws-samples/sample-outposts-third-party-storage-integration.git
cd sample-outposts-third-party-storage-integration
pip install -e .
# Export AMI to RAW format (for Localboot)
python3 -m vmie export --region us-west-2 --s3-bucket <bucket-name> \
--ami-id ami-XXXXXXXXXXXX
# Export AMI with SANboot support (Linux only)
python3 -m vmie export --region us-west-2 --s3-bucket <bucket-name> \
--ami-id ami-XXXXXXXXXXXX --install-sanbootableFrom QCOW2 image:
# Convert to RAW (requires qemu-img on your workstation)
qemu-img convert -f qcow2 -O raw ./image.qcow2 ./image.raw# SSH to FlashArray from your workstation
ssh pureuser@<array-ip>
# Create boot volume sized for your image (e.g., 20GB for typical Linux)
purevol create --size 20G golden-rhel9-boot
# Connect to a "provisioning host" for image writing
purehost connect --vol golden-rhel9-boot provisioning-hostConnect the boot volume to a Linux or Windows system on the same network as the FlashArray. This can be your workstation if it has iSCSI connectivity, or any other system with storage network access.
Linux:
# Download exported RAW image from S3
aws s3 cp "s3://<bucket>/exports/<export-path>/export-ami-XXX.raw" ./image.raw
# Check image size
ls -lsh ./image.raw
# Write to FlashArray volume (replace mpathX with your multipath device)
sudo dd if=./image.raw of=/dev/mapper/mpathX bs=8M status=progress oflag=sync
# Disconnect when done
sudo multipath -f mpathXWindows (PowerShell as Administrator):
# Download exported RAW image
aws s3 cp "s3://<bucket>/exports/<export-path>/export-ami-XXX.raw" .\image.raw
# Identify the FlashArray disk (offline disk)
Get-Disk | Where-Object OperationalStatus -eq 'Offline'
# Write RAW image (replace X with disk number; requires dd via Git Bash/WSL)
dd if=.\image.raw of=\\.\PhysicalDriveX bs=8MTip: On Windows, Win32 Disk Imager can also write RAW images.
After writing the image, create a snapshot for fast provisioning of new boot volumes:
# SSH to FlashArray
ssh pureuser@<array-ip>
# Create snapshot of the golden image
purevol snap --suffix golden-v1 golden-rhel9-boot
# Clone new boot volumes from snapshot
purevol copy golden-rhel9-boot.golden-v1 ec2-instance-01-boot
purehost connect --vol ec2-instance-01-boot ec2-instance-01flowchart TB
subgraph AWSRegion["AWS Region"]
subgraph VPC["Customer VPC"]
subgraph OutpostRack["Outpost Rack"]
EC2_R["EC2 Instance<br/>(IQN/NQN Initiator)"]
LGW["Local Gateway<br/>(LGW)"]
end
end
end
subgraph OnPrem["On-Premises Network"]
subgraph FlashArray["Everpure FlashArray"]
Portals["Portal IPs<br/>NVMe-TCP: 4420<br/>iSCSI: 3260"]
end
end
EC2_R <-->|"NVMe-TCP / iSCSI"| LGW
LGW <-->|"L3 Routing"| FlashArray
style AWSRegion fill:#232f3e,stroke:#ff9900,color:#fff
style VPC fill:#3b48cc,stroke:#fff,color:#fff
style OutpostRack fill:#1b660f,stroke:#fff,color:#fff
style OnPrem fill:#f5f5f5,stroke:#333
style FlashArray fill:#fe5000,stroke:#fff,color:#fff
style EC2_R fill:#ff9900,stroke:#232f3e,color:#000
style LGW fill:#ff9900,stroke:#232f3e,color:#000
style Portals fill:#fff,stroke:#fe5000,color:#000
flowchart TB
subgraph AWSRegion["AWS Region"]
subgraph VPC["Customer VPC"]
subgraph OutpostServer["Outpost Server (2U)"]
EC2_S["EC2 Instance<br/>(IQN/NQN Initiator)"]
LNI["Local Network<br/>Interface (LNI)"]
end
end
end
subgraph OnPrem["On-Premises Network"]
subgraph FlashArray["Everpure FlashArray"]
Portals["Portal IPs<br/>NVMe-TCP: 4420<br/>iSCSI: 3260"]
end
end
EC2_S <-->|"NVMe-TCP / iSCSI"| LNI
LNI <-->|"L2 Connectivity"| FlashArray
style AWSRegion fill:#232f3e,stroke:#ff9900,color:#fff
style VPC fill:#3b48cc,stroke:#fff,color:#fff
style OutpostServer fill:#1b660f,stroke:#fff,color:#fff
style OnPrem fill:#f5f5f5,stroke:#333
style FlashArray fill:#fe5000,stroke:#fff,color:#fff
style EC2_S fill:#ff9900,stroke:#232f3e,color:#000
style LNI fill:#ff9900,stroke:#232f3e,color:#000
style Portals fill:#fff,stroke:#fe5000,color:#000
| Task | NVMe-TCP | iSCSI |
|---|---|---|
| Default Port | 4420 | 3260 |
| Identifier | NQN | IQN |
| Linux Check | nvme list-subsys |
iscsiadm -m session -P3 |
| Discovery Port | 8009 | 3260 |
- Verify network connectivity from Outpost subnet to FlashArray portal IPs
- Check LGW/LNI configuration in AWS console
- Verify initiator mapping on FlashArray (NQN/IQN must match)
- Check volume mapping - volume must be connected to the host entry
# Linux - check dmesg for connection errors
dmesg | grep -i nvme
dmesg | grep -i iscsi
# Verify kernel modules loaded
lsmod | grep nvme
lsmod | grep iscsi- Ensure all portal IPs are added during EC2 launch
- Verify all paths show as active in FlashArray
For production deployments:
- Configure multiple portal IPs for multipath redundancy
- Enable Everpure SafeMode Snapshots for ransomware protection
- Set up ActiveDR replication for disaster recovery Resources:
- AWS Outposts External Storage Documentation
- AWS Blog: Deploying external boot volumes with AWS Outposts
- AWS VM Import/Export
- Everpure FlashArray for AWS Outposts Blog
- Everpure FlashArray Documentation