Cloud Parallel File Storage (CPFS) は、NFS プロトコルを使用してアクセスできます。CPFS ファイルシステムを作成した後、プロトコルサービスを有効にし、エクスポートディレクトリを作成してマウントポイントを生成する必要があります。その後、Elastic Computing Service (ECS) インスタンスに CPFS-NFS クライアントをインストールし、mount コマンドを実行して CPFS ファイルシステムにアクセスできます。エクスポートディレクトリのマウントポイントは、POSIX マウントポイントとは独立しています。NFS プロトコルのみを使用して CPFS ファイルシステムにアクセスする場合、POSIX マウントポイントを作成する必要はありません。POSIX マウントポイントを削除しても、エクスポートディレクトリを介したデータアクセスには影響しません。
前提条件
CPFS ファイルシステムが作成されていること。詳細については、「ファイルシステムの作成」をご参照ください。
プロトコルサービスが作成されていること。詳細については、「プロトコルサービスの作成」をご参照ください。
エクスポートディレクトリが作成されていること。詳細については、「エクスポートディレクトリの作成」をご参照ください。
1 つ以上の ECS インスタンスが作成されており、次の 2 つの条件を満たしていること。詳細については、「ECS インスタンスの作成」をご参照ください。
インターネット IPv4 アドレスが割り当てられているか、Elastic IP (EIP) が関連付けられている。
注意事項
サポートされるオペレーティングシステム
オペレーティングシステムの種類 | オペレーティングシステムのバージョン |
Alibaba Cloud Linux |
|
CentOS |
|
Ubuntu |
|
Debian |
|
SUSE |
|
IP アドレスとポート
CPFS-NFS クライアントは、マウント操作中のポートマッピングに、ローカル IP アドレス 127.0.1.255 と TCP ポート範囲 30000~60000 を使用します。
IP アドレス 127.0.1.255 またはポート範囲 30000~60000 が他のソフトウェアによって使用されている場合は、CPFS-NFS クライアントの設定を変更してください。詳細については、「クライアントの設定」をご参照ください。
ファイルディレクトリ
CPFS-NFS クライアントをインストールすると、クライアントの設定ディレクトリ (/etc/aliyun/cpfs)、ランタイムディレクトリ (/var/run/cpfs)、ログディレクトリ (/var/log/aliyun/cpfs/) が ECS インスタンス上に作成されます。
プロセス
CPFS-NFS クライアントを使用して CPFS ファイルシステムをマウントすると、I/O アクセスを処理するために haproxy プロセスが ECS インスタンスで開始されます。また、CPFS-NFS クライアントの正常性を監視するためにウォッチドッグプロセスも開始されます。
クライアントログ
/var/log/aliyun/cpfs/ パスにある CPFS-NFS クライアントログにアクセスして、マウントエラーに関する情報を見つけることができます。また、ログ設定ファイル /etc/aliyun/cpfs/cpfs-utils.conf のパラメーターを変更することで、クライアントログの内容をカスタマイズすることもできます。設定ファイルを変更した後、sudo service aliyun-cpfs-mount-watchdog restart コマンドを実行して、バックエンドのウォッチドッグプロセスを再起動します。
ステップ 1: CPFS-NFS クライアントをダウンロードしてインストールする
このクライアントはオープンソースです。GitHub リポジトリにアクセスして、ソースコードを取得したり、手動でコンパイルしたりできます。
CPFS ファイルシステムをマウントする ECS インスタンスにログインします。詳細については、「ECS インスタンスへの接続方法の選択」をご参照ください。
CPFS-NFS クライアントをダウンロードしてインストールします。
Alibaba Cloud Linux
CPFS-NFS クライアントをダウンロードします。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.al.noarch.rpmCPFS-NFS クライアントをインストールします。
sudo yum install aliyun-alinas-utils-*.rpm
CentOS
CPFS-NFS クライアントをダウンロードします。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.el.noarch.rpmCPFS-NFS クライアントをインストールします。
sudo yum install aliyun-alinas-utils-*.rpm
Ubuntu
CPFS-NFS クライアントをダウンロードします。
sudo wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.deb -O /tmp/aliyun-alinas-utils-latest.debCPFS-NFS クライアントをインストールします。
sudo apt-get update sudo apt-get install /tmp/aliyun-alinas-utils-latest.deb
Debian
CPFS-NFS クライアントをダウンロードします。
sudo wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.deb -O /tmp/aliyun-alinas-utils-latest.debCPFS-NFS クライアントをインストールします。
sudo apt-get update sudo apt-get install /tmp/aliyun-alinas-utils-latest.deb
SUSE
CPFS-NFS クライアントをダウンロードします。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.lp15.x86_64.rpmCPFS-NFS クライアントをインストールします。
sudo zypper --no-gpg-checks install -y aliyun-alinas-utils-*.rpm
CPFS-NFS クライアントのインストールを確認します。
which mount.cpfs-nfs以下は、成功した応答の例です。
/usr/sbin/mount.cpfs-nfs
ステップ2:CPFS-NFS クライアントを使用したファイルシステムのマウント
CPFS ファイルシステムをマウントします。
sudo mount -t cpfs-nfs -o vers=3,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.cpfs.aliyuncs.com:/share/path /mnt次の表に、mount コマンドのパラメーターを説明します。
パラメーター
説明
file-system-id.region.cpfs.aliyuncs.com:/share/path /mnt
これは <マウントアドレス> <ローカルマウントパス> を示します。実際の値に置き換えてください。
マウントアドレス:エクスポートディレクトリのマウントアドレス。File Storage NAS コンソールで、ファイルシステムリストページに移動します。対象のファイルシステムの横にある [管理] をクリックして、[プロトコルサービス] ページに移動します。[操作] 列で、[エクスポートディレクトリ] をクリックして [エクスポートディレクトリ] パネルを開き、マウントアドレスを取得します。
例:
cpfs-196f91a8e58b****-195ceeac7b6ac****.cn-chengdu.cpfs.aliyuncs.com:/share/filesetローカルマウントパス:Linux ECS インスタンスのルートディレクトリ (/) または任意のサブディレクトリ (例:/mnt)。サブディレクトリの場合は、そのサブディレクトリが存在することを確認してください。
vers
ファイルシステムのバージョン。CPFS は NFSv3 プロトコルでのみファイルシステムのマウントをサポートします。
マウントオプション
ファイルシステムをマウントする際に、複数のマウントオプションを選択できます。オプションはカンマ (,) で区切ります。オプションは次のとおりです。
rsize:クライアントとファイルシステム間でデータを読み取るブロックのサイズを定義します。推奨値:1048576。
wsize:クライアントとファイルシステム間でデータを書き込むブロックのサイズを定義します。推奨値:1048576。
説明I/O サイズパラメーター (rsize および wsize) を変更するには、パフォーマンスの低下を避けるために最大値 (1048576) を使用してください。
hard:CPFS が一時的に利用できなくなった場合、ファイルシステム上のファイルを使用するローカルアプリケーションは停止し、ファイルシステムがオンラインに戻るまで待機します。このパラメーターを有効にすることを推奨します。
timeo: CPFS-NFS クライアントがファイルシステムにリクエストを再送信する前に応答を待つ時間を 10 分の 1 秒単位で指定します。推奨値: 600 (60 秒)。
説明タイムアウトパラメーター (timeo) を変更する必要がある場合は、150 以上の値を使用してください。timeo パラメーターの単位は 10 分の 1 秒なので、150 は 15 秒を表します。
retrans: CPFS-NFS クライアントがリクエストを再試行する回数。推奨値: 2。
noresvport:ネットワークが再接続するときに新しい TCP ポートを使用します。これにより、ネットワークエラーからの回復中に接続が中断されないことが保証されます。このパラメーターを有効にすることを推奨します。
重要soft オプションはデータ整合性の脅威をもたらすため、使用を推奨しません。soft オプションを使用する場合、関連する脅威についてはお客様の責任となります。
デフォルト値と異なる他のマウントオプションを設定することは避けてください。読み取りまたは書き込みバッファサイズを変更したり、属性キャッシュを無効にしたりすると、パフォーマンスが低下する可能性があります。
mount -lコマンドを実行してマウントを確認します。ファイルシステムがマウントされた後、
df -hコマンドを実行してその容量を表示できます。オプション:起動時の自動マウントを設定します。
ECS インスタンスが再起動したときにマウント情報が失われるのを防ぐために、Linux ECS インスタンスの /etc/fstab ファイルを設定できます。これにより、ECS インスタンスが再起動したときに CPFS ファイルシステムが自動的にマウントされるようになります。
/etc/fstab 構成ファイルを開き、マウント構成を追加します。
file-system-id.region.nas.aliyuncs.com:/share/path /mnt cpfs-nfs vers=3,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0この例の主要なパラメーターの説明については、「mount コマンドのパラメーター」をご参照ください。その他のパラメーターは次のとおりです。
パラメーター
説明
_netdev
ネットワークの準備が整う前にクライアントがファイルシステムのマウントを開始するのを防ぎます。
0 (noresvport の後の最初の項目)
ゼロ以外の値は、ファイルシステムが dump コマンドによってバックアップされるべきであることを示します。CPFS ファイルシステムの場合、この値はデフォルトで 0 です。
0 (noresvport の後の 2 番目の項目)
この値は、起動時に fsck がファイルシステムをチェックする順序を示します。CPFS ファイルシステムの場合、この値はデフォルトで 0 であり、起動時に fsck が実行されないことを意味します。
rebootコマンドを実行して ECS インスタンスを再起動します。説明ECS インスタンスを再起動する前に、再起動の失敗を避けるために手動マウントが成功したことを確認してください。自動マウントが正常に設定されている場合、ECS インスタンスの再起動後に
df -hコマンドを実行して、CPFS ファイルシステムがマウントされていることを確認できます。
クライアントの設定
設定ファイル
CPFS-NFS クライアントの設定を変更するには、CPFS 技術サポートチームに連絡してガイダンスを受けてください。ガイダンスなしで設定ファイルを変更すると、I/O アクセスに影響が出る可能性があります。設定ファイルは /etc/aliyun/cpfs/cpfs-utils.conf にあります。以下は設定のサンプルです。
[DEFAULT]
logging_level = INFO
logging_max_bytes = 1048576
logging_file_count = 10
[mount]
stunnel_debug_enabled = false
# マウント時に証明書のホスト名を検証します。 このオプションは、特定の stunnel バージョンではサポートされていません。
stunnel_check_cert_hostname = false
# OCSP を使用して証明書の有効性を確認します。 このオプションは、特定の stunnel バージョンではサポートされていません。
stunnel_check_cert_validity = false
proxy_port = 12049
cpfs_proxy_addr = 127.0.1.255
cpfs_proxy_port_min = 30000
cpfs_proxy_port_max = 60000
[mount-watchdog]
poll_interval_sec = 1
unmount_grace_period_sec = 30
dns_refresh_interval = 60
[client-tool]次の表に、設定ファイルの重要なパラメーターを説明します。
パラメーター | 説明 |
logging_level | ログレベル。デフォルト値は INFO です。 |
logging_max_bytes | ログファイルの最大サイズ。デフォルト値は 1048576 バイトで、単一のログファイルの最大サイズが 1 MiB であることを意味します。 |
logging_file_count | 保持するログファイルの最大数。デフォルト値は 10 で、これは最大 10 個のログファイルが保持されることを意味します。 |
cpfs_proxy_addr | CPFS クライアントのプロキシ IP アドレス。デフォルト値は 127.0.1.255 です。 |
cpfs_proxy_port_min | CPFS クライアントのプロキシポート範囲の最小値。デフォルト値は 30000 です。 |
cpfs_proxy_port_max | CPFS クライアントのプロキシポート範囲の最大値。デフォルト値は 60000 です。 |
poll_interval_sec | バックエンドのウォッチドッグサービスの検出間隔。デフォルト値は 1 秒です。 |
unmount_grace_period_sec | CPFS-NFS マウントポイントをアンマウントした後の、対応する設定ファイルをクリーンアップするための静止時間。デフォルト値は 30 秒です。 |
dns_refresh_interval | バックエンドのウォッチドッグサービスが、DNS に対応するプライマリノードとセカンダリノードがアクティブであるかどうかをチェックする間隔。デフォルト値は 60 秒です。 |
haproxy の設定
CPFS-NFS クライアントは、マウントプロセス中に haproxy 設定ファイルを自動的に生成し、haproxy プロセスを開始します。I/O アクセスに影響が出る可能性があるため、この設定ファイルは変更しないでください。設定ファイルは /var/run/cpfs/haproxy-config.dns で表示できます。以下は例です。
global
maxconn 4096
defaults
mode tcp
balance leastconn
timeout client 60s
timeout server 60s
timeout connect 3s
retries 3
frontend cpfs2049
bind 127.0.1.255:30000
default_backend bk2049
backend bk2049
server cpfs_primary 172.27.1.189:2049 maxconn 2048 check port 2049 inter 2s fall 5 rise 30 on-marked-up shutdown-backup-sessions
server cpfs_backup 172.27.0.214:2049 maxconn 2048 check port 2049 inter 2s fall 5 rise 30 backup次の表に、重要なパラメーターを説明します。
パラメーター | 説明 |
defaults | デフォルトのパラメーター値を変更することはお勧めしません。 |
frontend | haproxy プロキシのローカル IP アドレスとポート。デフォルトの IP アドレスは 127.0.1.255 で、ポート範囲は 30000~60000 です。 |
backend | バックエンドの CPFS-NFS サービスの IP アドレス。 |