CPFS は NFS プロトコル経由でのアクセスをサポートしています。CPFS ファイルシステムを作成した後、プロトコルサービスを有効化し、エクスポートディレクトリを作成してマウントポイントを生成します。その後、ECS インスタンスに CPFS-NFS クライアントをインストールし、マウントコマンドを実行してファイルシステムにアクセスします。エクスポートディレクトリのマウントポイントは POSIX マウントポイントとは独立しています。NFS プロトコル経由でのみ CPFS ファイルシステムにアクセスする場合は、POSIX マウントポイントを作成する必要はありません。既存の POSIX マウントポイントを削除しても、エクスポートディレクトリ経由でのデータアクセスには影響しません。
前提条件
-
CPFS ファイルシステムが作成済みです。詳細については、「ファイルシステムの作成」をご参照ください。
-
プロトコルサービスが作成済みです。詳細については、「プロトコルサービスの作成」をご参照ください。
-
エクスポートディレクトリが作成済みです。詳細については、「エクスポートディレクトリの作成」をご参照ください。
-
1 つ以上の ECS インスタンスが作成済みで、次の条件を満たしている必要があります。詳細については、「ECS インスタンスの作成」をご参照ください。
-
ECS インスタンスにパブリック IPv4 アドレスが割り当てられているか、または Elastic IP アドレスが関連付けられています。
-
インスタンスのオペレーティングシステムが CPFS-NFS クライアントでサポートされているオペレーティングシステムのいずれかです。
-
使用方法
サポートされるオペレーティングシステム
|
オペレーティングシステムの種類 |
オペレーティングシステムのバージョン |
|
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 クライアントをインストールすると、ECS インスタンス上に次のディレクトリが作成されます:設定ファイルディレクトリ (/etc/aliyun/cpfs)、ランタイムディレクトリ (/var/run/cpfs)、ログディレクトリ (/var/log/aliyun/cpfs/)。
ランタイムディレクトリには、自動生成された haproxy 設定ファイルが格納されます。hp_config_dir オプションを使用してカスタムパスを指定した場合、そのパスが代わりに使用されます。
プロセス
CPFS-NFS クライアントを使用して CPFS ファイルシステムをマウントすると、ECS インスタンス上で I/O アクセス用の 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.rpm -
CPFS-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.rpm -
CPFS-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.deb -
CPFS-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.deb -
CPFS-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.rpm -
CPFS-NFS クライアントをインストールします。
sudo zypper --no-gpg-checks install -y aliyun-alinas-utils-*.rpm
-
-
インストールを確認します。
which mount.cpfs-nfsインストールが成功すると、次の出力が返されます。
/usr/sbin/mount.cpfs-nfs
手順 2:クライアントを使用したファイルシステムのマウント
-
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
マウントパスおよびローカルパスを指定します。実際の値に置き換えてください。
-
マウントパス:エクスポートディレクトリのマウントパスです。File Storage NAS コンソールのファイルシステム一覧ページで、対象のファイルシステムの 管理 をクリックして プロトコルサービス ページに移動します。操作 列で エクスポートディレクトリ をクリックして エクスポートディレクトリ パネルを開き、マウントパスを取得します。
例:
cpfs-196f91a8e58b****-195ceeac7b6ac****.cn-chengdu.cpfs.aliyuncs.com:/share/fileset -
ローカルパス:ファイルシステムをマウントする ECS インスタンス上のパスです。ルートディレクトリ (/) または /mnt などのサブディレクトリを指定できます。サブディレクトリを指定する場合は、事前にそのディレクトリが存在することを確認してください。
vers
NFS のバージョンです。CPFS は NFSv3 のみをサポートしています。
マウントオプション
複数のマウントオプションをカンマ (,) で区切って指定できます。利用可能なオプションは次のとおりです。
-
rsize:クライアントとファイルシステム間でデータを読み取る際に使用するデータブロックのサイズ(バイト単位)です。推奨値:1048576。
-
wsize:クライアントとファイルシステム間でデータを書き込む際に使用するデータブロックのサイズ(バイト単位)です。推奨値:1048576。
説明I/O サイズパラメーター(rsize および wsize)を変更する必要がある場合は、パフォーマンスの低下を回避するために最大値(1048576)を使用することを推奨します。
-
hard:CPFS ファイルシステムが一時的に利用できなくなった場合、ファイルシステム上のファイルを使用しているローカルアプリケーションは停止し、ファイルシステムがオンラインに戻るまで待ちます。このオプションを推奨します。
-
timeo:CPFS-NFS クライアントがファイルシステムへのリクエストに対する応答を待つ時間(0.1 秒単位)です。推奨値:600(60 秒)。
説明タイムアウトパラメーター(timeo)を変更する必要がある場合は、0.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.cpfs.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.cpfs.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 MiB)。 |
|
logging_file_count |
保持するログファイルの最大数です。デフォルト値: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 設定ファイルを生成し、関連プロセスを起動します。この設定ファイルを手動で変更しないでください。そうしないと、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 アドレスです。 |