# How to use HPS in Japan region (DDN)?

## Initial Setup <a href="#hpsusinginvietnamregion-vastdata-initialsetup" id="hpsusinginvietnamregion-vastdata-initialsetup"></a>

To start using **File Storage - High Performance (HPS)**, please get in touch with the FPT Support team.\
After providing the required information, your account will be activated with the service, a quota will be assigned.

**Required Information**

<table><thead><tr><th width="47.20001220703125">#</th><th width="97.4000244140625">Item</th><th width="99.4000244140625">Unit</th><th width="155.800048828125">Required</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td>Tenant/ Region</td><td>— </td><td>Yes</td><td>The Tenant and Region where you want to enable the <strong>File Storage - High Performance</strong> service.</td></tr><tr><td>2</td><td>Storage Quota</td><td>GB</td><td>Yes</td><td>The amount of storage capacity you plan to use.</td></tr><tr><td>3</td><td>Subnet</td><td>Subnet CIDR</td><td>Yes</td><td>Please provide the list of subnets that require access so the FPT support team can configure them.</td></tr><tr><td>4</td><td>Performance</td><td>IOPS</td><td>No</td><td>Desired IOPS performance (if not provided, the default limit will be applied).</td></tr><tr><td>5</td><td>Bandwidth</td><td>Gbps</td><td>No</td><td>Desired bandwidth (if not provided, the default limit will be applied).</td></tr></tbody></table>

## Use with Metal Cloud (a Bare Metal GPU server) <a href="#hpsusinginvietnamregion-vastdata-usewithmetalcloud-abaremetalgpuserver" id="hpsusinginvietnamregion-vastdata-usewithmetalcloud-abaremetalgpuserver"></a>

{% hint style="warning" %}
**Notes:**

* Each **subnet** has its own **endpoint** for connecting to the file storage system.
* Always verify the endpoint and configuration details provided before performing the mount operation to avoid setup errors.
  {% endhint %}

### Use FPT Images <a href="#hpsusinginvietnamregion-vastdata-usefptimages" id="hpsusinginvietnamregion-vastdata-usefptimages"></a>

If you are using an image provided by **FPT**, the **DDN client** is pre-installed. Follow the steps below to mount the File Storage.

{% stepper %}
{% step %}
**Create a Mount Point**

```
# Create Mount Point
 
mkdir /mnt/hps
```

{% endstep %}

{% step %}
**Mount the File System manually**

```
# Create Mount Point
 
mount -t lustre 100.69.252.1@o2ib,100.69.252.2@o2ib:100.69.252.3@o2ib,100.69.252.4@o2ib:100.69.252.5@o2ib,100.69.252.6@o2ib:100.69.252.7@o2ib,100.69.252.8@o2ib:/scratch /mnt/hps
```

{% endstep %}

{% step %}
**Auto-Mount Configuration**

**To automatically mount the Lustre file system after reboot**, add the following entry to `/etc/fstab`:

```
## LustreFS ##
100.69.252.1@o2ib,100.69.252.2@o2ib:100.69.252.3@o2ib,100.69.252.4@o2ib:100.69.252.5@o2ib,100.69.252.6@o2ib:100.69.252.7@o2ib,100.69.252.8@o2ib:/scratch /mnt/hps lustre flock,defaults 0 0
```

**Explanation**

1. `100.69.252.1@o2ib,100.69.252.2@o2ib:...:100.69.252.8@`[`o2ib:/scratch`](http://o2ib/scratch)
   * **100.69.252.1–100.69.252.8**: Fixed endpoint addresses of the Lustre servers.
   * **/scratch**: Filesystem path on the Lustre server.
2. /mnt/hps: Mount point on the client (created in Step 1).

{% hint style="warning" %}
**Note:** Run the following command to verify that the mount configuration has no errors.
{% endhint %}

```
mount -a
```

{% endstep %}

{% step %}
**Verify**

```
# Confirm Client can mount lustre
df -h -t lustre
 
 
Filesystem                                                                       Size  Used Avail Use% Mounted on
100.69.252.1@o2ib,100.69.252.2@o2ib:100.69.252.3@o2ib,100.69.252.4@o2ib:100.69.252.5@o2ib,100.69.252.6@o2ib:100.69.252.7@o2ib,100.69.252.8@o2ib:/scratch   11T  8.0K   11T   1% /mnt/hps
```

{% endstep %}
{% endstepper %}

### Using Custom Images (Ubuntu) <a href="#hpsusinginjapanregion-ddn-usingcustomimages-ubuntu" id="hpsusinginjapanregion-ddn-usingcustomimages-ubuntu"></a>

If you are using a **custom image running Ubuntu**, you will need to **manually build the required packages** by following the steps below.

{% stepper %}
{% step %}
**Build Lustre Client**

This step is for building the **Lustre Client** package from source code, in case a prebuilt package compatible with your current kernel version is not available.

* If your system **already has a Lustre Client package** compatible with the current kernel, you can **skip this step** and proceed directly to **Step B2 (Install .deb packages)**.
* If you have **previously built the package** for the same kernel version, you can **reuse it** and skip this step

<pre><code><strong># Build Packages (skip if already built for same kernel)
</strong> 
wget https://s3-sgn10.fptcloud.com/file-storage-resource/exa-client-6.3.4.tar.gz
tar xzvf exa-client-6.3.4.tar.gz
cd exa-client
./exa_client_deploy.py
 
<strong># Select option 2
</strong><strong># Wait for configure and build
</strong><strong># After installation is finished, select option 6
</strong><strong># (compiled packages are saved in /opt/ddn/exascaler/debs)
</strong></code></pre>

If your Ubuntu operating system is running **kernel version** `5.15.0-130-generic`, you can **skip the build process** and directly use the **prebuilt packages** provided below.

```
# Install Lustre Pkg (for kernel 5.15.0-130-generic)
 
wget https://s3-sgn10.fptcloud.com/package-pub/lustre-dev_2.14.0-ddn184-1_amd64.deb
wget https://s3-sgn10.fptcloud.com/package-pub/lustre-client-modules-5.15.0-130-generic_2.14.0-ddn184-1_amd64.deb
wget https://s3-sgn10.fptcloud.com/package-pub/lustre-client-utils_2.14.0-ddn184-1_amd64.deb
```

{% endstep %}

{% step %}
**Install Lustre Client**

Install the Lustre Client using `.deb` packages built in step 1 or downloaded above.

* Only perform this step if the matching `.deb` packages are available. If not, return to **Step 1** to build the required packages.
* If the kernel version does not match the package, errors may occur, and a rebuild will be necessary&#x20;

```
# Install Lustre Pkg (for kernel 5.15.0-130-generic)
 
sudo dpkg -i lustre-dev_2.14.0-ddn184-1_amd64.deb \
             lustre-client-modules-5.15.0-130-generic_2.14.0-ddn184-1_amd64.deb \
             lustre-client-utils_2.14.0-ddn184-1_amd64.deb
```

{% endstep %}

{% step %}
**Configure the Lustre Client**

Apply the following configuration settings to **optimize the performance** of the Lustre Client.

* Edit `/etc/modprobe.d/lustre.conf`:

```
# Edit or create file /etc/modprobe.d/lustre.conf like below
[/etc/modprobe.d/lustre.conf]
options lnet networks=o2ib(bond0)    <==HERE!
options ko2iblnd peer_credits=32 peer_credits_hiw=16 concurrent_sends=64
```

* Edit `/etc/lustre_client`:

```
# Edit or create file /etc/lustre_client like below
[/etc/lustre_client]
 
#++++++++++++++++++++++++++++++++++++
# LNET Interface
IF1=bond0        <==HERE!
IF2=none
IF3=none
IF4=none
IF5=none
IF6=none
IF7=none
IF8=none
```

{% endstep %}

{% step %}
**Create a mountpoint in the OS**

```
# Create Mount Point
 
mkdir /mnt/hps
```

{% endstep %}

{% step %}
**Mount the File System manually**

```
# Create Mount Point
 
mount -t lustre 100.69.252.1@o2ib,100.69.252.2@o2ib:100.69.252.3@o2ib,100.69.252.4@o2ib:100.69.252.5@o2ib,100.69.252.6@o2ib:100.69.252.7@o2ib,100.69.252.8@o2ib:/scratch /mnt/hps
```

{% endstep %}

{% step %}
**Auto-Mount Configuration**

**To automatically mount the Lustre file system after reboot**, add the following entry to `/etc/fstab`:

```
# Write followings entries to /etc/fstab
##LustreFS##
 
100.69.252.1@o2ib,100.69.252.2@o2ib:100.69.252.3@o2ib,100.69.252.4@o2ib:100.69.252.5@o2ib,100.69.252.6@o2ib:100.69.252.7@o2ib,100.69.252.8@o2ib:/scratch /mnt/hps lustre flock,defaults 0 0
```

**Explanation**

1. `100.69.252.1@o2ib,100.69.252.2@o2ib:...:100.69.252.8@`[`o2ib:/scratch`](http://o2ib/scratch)
   * **100.69.252.1–100.69.252.8**: Fixed endpoint addresses of the Lustre servers.
   * **/scratch**: Filesystem path on the Lustre server.
2. /mnt/hps: Mount point on the client (created in Step 4).

{% hint style="warning" %}
**Note:** Run the following command to verify that the mount configuration has no errors.
{% endhint %}

```
mount -a
```

{% endstep %}

{% step %}
**Verify**

```
# Confirm Client can mount lustre
df -h -t lustre
 
 
Filesystem                                                                       Size  Used Avail Use% Mounted on
100.69.252.1@o2ib,100.69.252.2@o2ib:100.69.252.3@o2ib,100.69.252.4@o2ib:100.69.252.5@o2ib,100.69.252.6@o2ib:100.69.252.7@o2ib,100.69.252.8@o2ib:/scratch   11T  8.0K   11T   1% /mnt/hps
```

{% endstep %}
{% endstepper %}

## Use with a GPU Virtual machine <a href="#hpsusinginjapanregion-ddn-c.usewithagpuvirtualmachine" id="hpsusinginjapanregion-ddn-c.usewithagpuvirtualmachine"></a>

{% stepper %}
{% step %}

#### Attach Network Interface and Configure IP Address <a href="#hpsusinginjapanregion-ddn-step1-attachnetworkinterfaceandconfigureipaddress" id="hpsusinginjapanregion-ddn-step1-attachnetworkinterfaceandconfigureipaddress"></a>

To connect to HPS Storage for H200, use the pre-created subnet named `vm-gpu-hps-net-xxx` located under **Network > Subnets**.

<figure><img src="/files/hHOAh19mJxXEAa3k1btK" alt=""><figcaption></figcaption></figure>

**Attach the Network Interface:**

<figure><img src="/files/Gh66MhmbaMyXfBHhz6RL" alt=""><figcaption></figcaption></figure>

1. Navigate to **Instance Management**
2. Select your target VM GPU
3. Open the **Network Interface** tab
4. Click **Create NIC**
5. Select the network named `vm-gpu-hps-net-xxx`

**Configure the Network:**

<figure><img src="/files/kMMA1LNGbe5QXPYLMabH" alt=""><figcaption></figcaption></figure>

After attaching the interface, access your server and configure the network settings manually if DHCP is not enabled for that interface.
{% endstep %}

{% step %}
**Build and Install Lustre Client**

This step is for building and installing the **Lustre Client** package from source code

```
# Build Packages (skip if already built for same kernel)
 
wget https://s3-sgn10.fptcloud.com/file-storage-resource/exa-client-6.3.4.tar.gz
tar xzvf exa-client-6.3.4.tar.gz
cd exa-client
./exa_client_deploy.py
 
# Select option 2
# Wait for configure and build
# After installation is finished, select option 6
# (compiled packages are saved in /opt/ddn/exascaler/debs)
```

{% endstep %}

{% step %}
**Configure the Lustre Client**

Apply the following configuration settings to **optimize the performance** of the Lustre Client.

Edit `/etc/modprobe.d/lustre.conf`:

```
# Edit or create file /etc/modprobe.d/lustre.conf like below
[/etc/modprobe.d/lustre.conf]
options lnet networks=tcp(eth1)    <==HERE!
options ko2iblnd peer_credits=32 peer_credits_hiw=16 concurrent_sends=64
```

Edit `/etc/lustre_client`:

```
# Edit or create file /etc/lustre_client like below
[/etc/lustre_client]
 
#++++++++++++++++++++++++++++++++++++
# LNET Interface
IF1=eth1        <==HERE!
IF2=none
IF3=none
IF4=none
IF5=none
IF6=none
IF7=none
IF8=none
```

{% endstep %}

{% step %}
**Create a mountpoint in the OS**

```
# Create Mount Point
 
mkdir /mnt/hps
```

{% endstep %}

{% step %}
**Mount the File System manually**

```
# Create Mount Point
 
mount -t lustre 100.69.252.1@tcp,100.69.252.2@tcp:100.69.252.3@tcp,100.69.252.4@tcp:100.69.252.5@tcp,100.69.252.6@tcp:100.69.252.7@tcp,100.69.252.8@tcp:/scratch /mnt/hps
```

{% endstep %}

{% step %}
**Auto-Mount Configuration**

**To automatically mount the Lustre file system after reboot**, add the following entry to `/etc/fstab`:

```
# Write followings entries to /etc/fstab
##LustreFS##
 
100.69.252.1@tcp,100.69.252.2@tcp:100.69.252.3@tcp,100.69.252.4@tcp:100.69.252.5@tcp,100.69.252.6@tcp:100.69.252.7@tcp,100.69.252.8@tcp:/scratch /mnt/hps lustre flock,defaults 0 0
```

**Explanation**

100.69.252.1\@tcp,100.69.252.2\@tcp:...:100.69.252.8\@tcp[:/scratch](http://o2ib/scratch)

* **100.69.252.1–100.69.252.8**: Fixed endpoint addresses of the Lustre servers.
* **/scratch**: Filesystem path on the Lustre server.

`/mnt/hps:` Mount point on the client (created in Step 4).

{% hint style="warning" %}
**Note:** Run the command to verify if the mount configuration has any errors.
{% endhint %}

```
mount -a
```

{% endstep %}

{% step %}
**Verify**

```
# Confirm Client can mount lustre
df -h -t lustre
 
 
Filesystem                                                                       Size  Used Avail Use% Mounted on
100.69.252.1@tcp,100.69.252.2@tcp:100.69.252.3@tcp,100.69.252.4@tcp:100.69.252.5@tcp,100.69.252.6@tcp:100.69.252.7@tcp,100.69.252.8@tcp:/scratch   11T  8.0K   11T   1% /mnt/hps
```

{% endstep %}
{% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ai-docs.fptcloud.com/fpt-gpu-cloud/high-performance-storage/tutorials/how-to-use-hps-in-japan-region-ddn.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
