Cloud Parallel File Storage (CPFS) には、NFS プロトコルを使用してアクセスできます。CPFS ファイルシステムを作成した後、プロトコルサービスを有効にし、エクスポートディレクトリを作成してマウントポイントを生成する必要があります。その後、Elastic Compute Service (ECS) インスタンスに CPFS-NFS クライアントをインストールし、マウントコマンドを実行して CPFS ファイルシステムにアクセスできます。エクスポートディレクトリのマウントポイントは、POSIX マウントポイントとは独立しています。NFS プロトコルを使用して CPFS ファイルシステムにアクセスするだけであれば、POSIX マウントポイントを作成する必要はありません。元の POSIX マウントポイントを削除しても、エクスポートディレクトリを介したデータアクセスには影響しません。
前提条件
CPFS ファイルシステムが作成されていること。詳細については、「ファイルシステムの作成」をご参照ください。
プロトコルサービスが作成されていること。詳細については、「プロトコルサービスの作成」をご参照ください。
エクスポートディレクトリが作成されていること。詳細については、「エクスポートディレクトリの作成」をご参照ください。
1 つ以上の ECS インスタンスが作成されており、次の条件を満たしていること。詳細については、「ECS インスタンスの作成」をご参照ください。
パブリック IPv4 アドレスが割り当てられているか、Elastic IP (EIP) アドレスが関連付けられていること。
CPFS-NFS クライアントについては、「サポートされるオペレーティングシステム」をご参照ください。
注意事項
サポートされるオペレーティングシステム
オペレーティングシステムの種類 | オペレーティングシステムのバージョン |
Alibaba Cloud Linux |
|
CentOS |
|
Ubuntu |
|
Debian |
|
SUSE |
|
IP アドレスとポート
CPFS-NFS クライアントは、マウント操作中のポートマッピングのために、ローカル IP アドレス 127.0.1.255 と、このアドレス上の 30000 から 60000 までの TCP ポート範囲を使用します。
IP アドレス 127.0.1.255 またはポート範囲 30000 から 60000 が他のソフトウェアによって既に使用されている場合は、CPFS-NFS クライアントの設定を変更する必要があります。詳細については、「クライアント設定」をご参照ください。
ファイルディレクトリ
CPFS-NFS クライアントをインストールすると、ECS インスタンス上に次のディレクトリが作成されます:設定ファイルディレクトリ (/etc/aliyun/cpfs)、ランタイムディレクトリ (/var/run/cpfs)、およびログディレクトリ (/var/log/aliyun/cpfs/)。
ランタイムディレクトリには、自動生成された haproxy 設定ファイルが格納されます。hp_config_dir オプションを使用してカスタムパスを指定した場合、そのパスが代わりに使用されます。プロセス
CPFS-NFS クライアントを使用して CPFS ファイルシステムをマウントすると、I/O アクセスのために ECS インスタンス上で haproxy プロセスが開始されます。また、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
インストールが成功したかどうかを確認します。
which mount.cpfs-nfs成功した場合の応答例を以下に示します:
/usr/sbin/mount.cpfs-nfs
ステップ2:CPFS-NFS クライアントを使用したファイルシステムのマウント
CPFS ファイルシステムをマウントします。
シナリオ1:一般的なマウント (デフォルトパス)
このシナリオは、AppArmor、SELinux、または特別なパスアクセス制限が有効になっていないほとんどの環境に適用されます。
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シナリオ2:高セキュリティ環境 (SELinux または AppArmor が有効なシステムなど) でのマウント
AppArmor や SELinux などのポリシーによってオペレーティングシステムでセキュリティ強化が有効になっている場合、デフォルトのマウントではアクセス例外が発生する可能性があります。この場合、`hp_config_dir` を使用してパスを明示的に指定できます。コマンドを実行する際は、
<custom_directory>をシステムのセキュリティポリシーで許可されているパスに置き換えてください。sudo mount -t cpfs-nfs -o vers=3,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,hp_config_dir=<custom_directory> file-system-id.region.cpfs.aliyuncs.com:/share/path /mnt
マウントコマンドのパラメーター
パラメーター
説明
file-system-id.region.cpfs.aliyuncs.com:/share/path /mnt
<mount_path> <local_path_to_mount_on_the_server> を表します。必要に応じて置き換えてください。
マウントパス:エクスポートディレクトリのマウントパス。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` オプションを使用する場合、関連するすべての脅威はお客様の責任となります。
デフォルト値と異なる他のマウントオプションの設定は避けてください。読み取りまたは書き込みバッファサイズを変更したり、属性キャッシュを無効にしたりすると、パフォーマンスが低下する可能性があります。
hp_config_dir:(オプション) haproxy 設定ファイルのディレクトリを明示的に指定します。オペレーティングシステムにセキュリティ強化 (AppArmor や SELinux など) や、プロセスが特定パスでのみ設定を読み取ったり実行したりすることを制限するその他の高セキュリティポリシーがある場合に、このパラメーターを設定します。
パス選択の推奨:システムのセキュリティポリシーのホワイトリストから適切なディレクトリを選択し、そのパスがセキュリティモジュールによって承認されていることを確認してください。
ロジック:CPFS クライアントは、まずこのパラメーターで指定されたディレクトリを使用しようとします。指定されていない場合、セキュリティポリシーのホワイトリストを自動的に解析しようとします。解析に失敗した場合、デフォルトパス
/var/run/cpfsにフォールバックします。
mount -lコマンドを実行してマウント結果を表示します。マウントが成功した後、
df -hコマンドを実行して、現在のファイルシステムの容量情報を表示できます。(オプション) 起動時の自動マウントの設定
ECS インスタンスの再起動後にマウント情報が失われるのを防ぐために、
/etc/fstabファイルを設定できます。手動マウント時にhp_config_dirパラメーターを使用した場合は、ここでも設定する必要があります。/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高セキュリティ環境での設定例 (カスタムディレクトリを使用):
<custom_directory>をシステムのセキュリティポリシーで許可されているパスに置き換えてください。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,hp_config_dir=<custom_directory> 0 0その他のパラメーターの説明
パラメーター
説明
_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 つのログファイルは最大 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 | バックグラウンドのウォッチドッグサービスの検出間隔。デフォルト:1s。 |
unmount_grace_period_sec | CPFS-NFS マウントポイントをアンマウントした後、対応する設定ファイルをクリーンアップするための待機期間。デフォルト:30s。 |
dns_refresh_interval | バックグラウンドのウォッチドッグサービスが、DNS に対応するプライマリノードとセカンダリノードが利用可能かどうかをチェックする間隔。デフォルト:60s。 |
haproxy の設定
マウントプロセス中に、CPFS-NFS クライアントは自動的に haproxy 設定ファイルを生成し、関連プロセスを開始します。I/O アクセスが中断される可能性があるため、この設定ファイルを手動で変更しないでください。詳細については、`haproxy-config.dns` 設定ファイルをご参照ください。デフォルトでは、このファイルは `/var/run/cpfs/` ディレクトリに保存されます。マウントプロセス中に `hp_config_dir` パラメーターを明示的に指定した場合、ファイルは指定されたカスタムディレクトリに保存されます。以下にファイルの内容の例を示します。
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 アドレス。 |