このページでは、同じ Google Cloud プロジェクトと VPC ネットワークにある Compute Engine 仮想マシン(VM)インスタンスに Filestore ファイル共有をマウントする方法について説明します。リモート ネットワーク内のクライアントにファイル共有をマウントする方法については、リモート クライアントにファイル共有をマウントするをご覧ください。Google Kubernetes Engine クラスタから Filestore インスタンスにアクセスする場合は、Filestore CSI ドライバを使用して Filestore インスタンスにアクセスするをご覧ください。
始める前に
Filestore で使用できるようにネットワークのファイアウォールが正しく構成されていることを確認します。詳細については、ファイアウォール ルールの構成をご覧ください。
Compute Engine VM インスタンスにファイル共有をマウントする
次のいずれかの手順を使用して、Filestore ファイル共有を Compute Engine VM にマウントします。最適なパフォーマンスを得るには、n1-standard-8
VM 以降にマウントすることをおすすめします。
Linux: mount
Linux クライアント VM に手動でファイル共有をマウントするには:
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
クライアントとして使用する Linux VM を見つけて、[SSH] をクリックし、その VM でターミナルを開きます。
省略可: 複数のネットワーク インターフェースを持つクライアント VM に、セカンダリ ネットワーク経由でファイル共有をマウントします。
詳細(クリックして拡大)
セカンダリ ネットワーク(
nic0
以外のインターフェース)を介してファイル共有をマウントする場合は、クライアント VM のルーティング ポリシーを変更する必要があります。次のコマンドを実行します。sudo ip route \ add filestore-reserved-address-range \ via default-gateway-of-nic-to-filestore
ここで
filestore-reserved-address-range
は、Filestore インスタンスで使用するために予約されているアドレス範囲です。default-gateway-of-nic-to-filestore
は、Filestore インスタンスと共有されている VPC ネットワークに接続されている NIC のデフォルト ゲートウェイ IP アドレスです。
複数の NIC で Compute Engine インスタンスを使用する方法については、追加のネットワーク インターフェースのルーティングを構成するをご覧ください。
NFS をインストールします。
Debian、Ubuntu
Debian または Ubuntu に NFS をインストールするには、次のコマンドを使用します。
sudo apt-get -y update &&
sudo apt-get install nfs-commonRHEL / CentOS
Red Hat Enterprise Linux または CentOS に NFS をインストールするには、次のコマンドを使用します。
sudo yum update &&
sudo yum install nfs-utilsSUSE
SUSE に NFS をインストールするには、次のコマンドを使用します。
sudo zypper update &&
sudo zypper -n install nfs-clientFilestore ファイル共有にマッピングするローカル ディレクトリを作成します。
sudo mkdir -p mount-point-directory
ここで、
mount-point-directory
は作成するディレクトリです(例:/mnt/filedir
)。mount
コマンドを実行して、Filestore インスタンスからファイル共有をマウントします。任意の NFS マウント オプションを使用できます。最適なパフォーマンスを得るには、次の NFSmount
オプションを使用することをおすすめします。オプション 説明 hard
NFS クライアントは、NFS リクエストを無期限に再試行します。Filestore インスタンスを再起動したときに I/O 停止の可能性を減らすには、Linux と Windows の両方のクライアントに hard
マウント オプションを使用することをおすすめします。timeo=600
NFS クライアントは、NFS リクエストを再試行するまで 600 デシ秒(60 秒)待ちます。 retrans=3
NFS クライアントは、NFS リクエストを 3 回試行してから、さらに復旧処理を行います。 rsize=262144
NFS クライアントは、NFS サーバーから READ
リクエストごとに最大 262,144 バイトを受信できます。
注: ベーシック ティア インスタンスの場合は、rsize
値を1048576
に設定します。wsize=1048576
NFS クライアントは、NFS サーバーから WRITE
リクエストごとに最大 1,048,576 バイトを受信できます。resvport
NFS クライアントは、このマウント ポイントの NFS サーバーと通信するときに特権ソースポートを使用します。 async
NFS クライアントは、特定の条件が満たされるまで、NFS サーバーへのアプリケーション書き込みの送信を遅らせます。
注意:sync
オプションを使用すると、パフォーマンスが大幅に低下します。- マウント レイテンシを短縮するには、
-o tcp
オプションを指定します。 - Linux カーネル バージョン 5.3 以降を実行しているクライアント VM にエンタープライズまたはゾーン(以前は高スケール SSD)階層インスタンスをマウントする場合は、NFS のパフォーマンスを向上させるために
nconnect
の指定を検討してください。ゾーン階層のサービスティアの場合は最大7
個の接続を指定し、リージョン ティアとエンタープライズ ティアの場合は最大2
個の接続を指定することをおすすめします。一般に、ファイル共有の容量が大きく、接続しているクライアント VM が少ないほど、nconnect
で追加の接続を指定することでパフォーマンスが向上します。
次のような任意のオプションを指定して
mount
コマンドを実行します。sudo mount -o rw ip-address:/file-share mount-point-directory
ここで
ip-address
は、Filestore インスタンスの IP アドレスです。file-share
は、インスタンス上のファイル共有の名前です。mount-point-directory
は、Filestore ファイル共有をマッピングするパスです。
インスタンスの IP アドレスとファイル共有名は、次のいずれかのソースから取得できます。
Filestore インスタンス ページ。
filestore instances list
コマンドの結果にあるIP_ADDRESS
フィールド。filestore instances describe
コマンドの結果にあるipAddresses
セクション。
たとえば、IP アドレスが
10.0.1.2
であり、ファイル共有名がshare1
である Filestore インスタンスの場合、次のコマンドはファイル共有をローカル マウント ポイント ディレクトリ/mnt/render
にマウントします。sudo mount 10.0.1.2:/share1 /mnt/render
- マウント レイテンシを短縮するには、
省略可:
chmod
を実行してマウント ディレクトリに権限を設定し、root ユーザー以外のユーザーが書き込みできるようにします。ディレクトリの権限を設定するには、次のコマンドを実行します。sudo chmod permissions mount-point-directory
ここで
permissions
は、付与する権限セットです。たとえば、chmod go+rw
を設定すると、ディレクトリは、そのディレクトリを所有するグループ内のメンバーとその他の全ユーザーが読み取りと書き込みを行えるようになります。権限の設定の詳細については、ファイル共有のアクセス権限を構成するをご覧ください。mount-point-directory
は、Filestore ファイル共有がマウントされているディレクトリへのパスです。
省略可: Filestore ファイル共有がマウントされていることを確認します。
df -h --type=nfs
出力には、次のようなエントリが含まれます。
Filesystem Size Used Avail Use% Mounted on 10.0.1.2:/share1 1018G 76M 966G 1% /mnt/render 10.0.2.2:/vol3 1018G 76M 966G 1% /mnt/filestore3
NFS ファイルのロックを使用する必要がある場合は、
statd
およびnlockmgr
デーモンが使用するポートを設定し、それらのポートを開放するためのファイアウォール ルールを構成する必要があるかもしれません。
Linux: /etc/fstab
クライアントの /etc/fstab
ファイルを変更することで、起動時にファイル共有をクライアント VM に自動的にマウントできます。
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
クライアントとして使用する Linux VM を見つけて、[SSH] をクリックし、その VM でターミナルを開きます。
省略可: 複数のネットワーク インターフェースを持つクライアント VM に、セカンダリ ネットワークを介してファイル共有をマウントします。
詳細(クリックして拡大)
セカンダリ ネットワーク(
nic0
以外のインターフェース)を介してファイル共有をマウントする場合は、クライアント VM のルーティング ポリシーを変更する必要があります。/etc/default/instance_configs.cfg
で、NetworkInterfaces
のsetup
フラグをfalse
に設定します。[NetworkInterfaces] dhclient_script = /sbin/google-dhclient-script dhcp_command = ip_forwarding = true setup = false
/etc/network/interfaces
に、次の行を追加します。auto eth1 iface eth1 inet dhcp up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
ここで
filestore-reserved-address-range
は、Filestore インスタンスで使用するために予約されているアドレス範囲です。default-gateway-of-nic-to-filestore
は、Filestore インスタンスと共有されている VPC ネットワークに接続されている NIC のデフォルト ゲートウェイ IP アドレスです。
複数の NIC で Compute Engine インスタンスを使用する方法については、追加のネットワーク インターフェースのルーティングを構成するをご覧ください。
NFS をインストールします。
Debian、Ubuntu
Debian または Ubuntu に NFS をインストールするには、次のコマンドを使用します。
sudo apt-get -y update &&
sudo apt-get install nfs-commonRHEL / CentOS
Red Hat Enterprise Linux または CentOS に NFS をインストールするには、次のコマンドを使用します。
sudo yum update &&
sudo yum install nfs-utilsSUSE
SUSE に NFS をインストールするには、次のコマンドを使用します。
sudo zypper update &&
sudo zypper -n install nfs-clientFilestore ファイル共有にマッピングするローカル ディレクトリを作成します。
sudo mkdir -p mount-point-directory
ここで、
mount-point-directory
は作成するディレクトリです(例:/mnt/filedir
)。/etc/fstab
ファイルを開きます。sudo vim /etc/fstab
次の行を
/etc/fstab
ファイルに追加します。ip-address:/file-share mount-point-directory nfs options,_netdev 0 0
ここで
ip-address
は、Filestore インスタンスの IP アドレスです。file-share
は、インスタンス上のファイル共有の名前です。mount-point-directory
は、Filestore ファイル共有をマッピングするパスです。options
は、NFS マウント オプションです。以下の例外を除き、デフォルトの NFS マウント オプションを使用することをおすすめします。- 自動マウントを使用する場合は、マウント時とマウント解除時のレイテンシを短縮するために、
-o tcp
を指定することをおすすめします。 - Linux カーネル バージョン 5.3 以降を実行しているクライアント VM にゾーン(以前は高スケール SSD)階層インスタンスをマウントする場合は、NFS を増やすために
nconnect
マウント オプションを指定することを検討してください。ゾーン階層の場合は最大7
個の接続を指定し、リージョン階層とエンタープライズ階層の場合は最大2
個の接続を指定することをおすすめします。一般に、ファイル共有の容量が大きく、接続しているクライアント VM が少ないほど、nconnect
で追加の接続を指定することでパフォーマンスが向上します。
- 自動マウントを使用する場合は、マウント時とマウント解除時のレイテンシを短縮するために、
例:
/etc/fstab
の次の行は、IP アドレス10.0.0.2
の Filestore インスタンスのファイル共有vol1
を、デフォルトのマウント オプションで、マウント ポイント ディレクトリ/mnt
にマウントします。10.0.0.2:/vol1 /mnt nfs defaults,_netdev 0 0
/etc/fstab
内のすべてをマウントします。sudo mount -a
これで、クライアント VM が起動するたびにファイル共有が自動的にマウントされます。
Linux: autofs
アクセスしているときにのみファイル共有を自動的にマウントし、使用されていないときはマウント解除のまま維持するように、autofs
を構成できます。ファイル共有を /etc/fstab
に静的にマウントする場合と比較して、この方法では、クライアントが多数のマウント ポイントにマッピングする必要がある場合にクライアント VM リソースを節約できます。
クライアント VM で NFS
と autofs
をインストールする
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
クライアントとして使用する Linux VM を見つけて、[SSH] をクリックし、その VM でターミナルを開きます。
省略可: 複数のネットワーク インターフェースを持つクライアント VM に、セカンダリ ネットワーク経由でファイル共有をマウントします。
詳細(クリックして拡大)
セカンダリ ネットワーク(
nic0
以外のインターフェース)を介してファイル共有をマウントする場合は、クライアント VM のルーティング ポリシーを変更する必要があります。/etc/default/instance_configs.cfg
で、NetworkInterfaces
のsetup
フラグをfalse
に設定します。[NetworkInterfaces] dhclient_script = /sbin/google-dhclient-script dhcp_command = ip_forwarding = true setup = false
/etc/network/interfaces
に、次の行を追加します。auto eth1 iface eth1 inet dhcp up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
ここで
filestore-reserved-address-range
は、Filestore インスタンスで使用するために予約されているアドレス範囲です。default-gateway-of-nic-to-filestore
は、Filestore インスタンスと共有されている VPC ネットワークに接続されている NIC のデフォルト ゲートウェイ IP アドレスです。
複数の NIC で Compute Engine インスタンスを使用する方法については、追加のネットワーク インターフェースのルーティングを構成するをご覧ください。
次のコマンドを実行して、NFS をインストールします。
Debian、Ubuntu
Debian または Ubuntu に NFS をインストールするには、次のコマンドを使用します。
sudo apt-get -y update &&
sudo apt-get install nfs-commonRHEL / CentOS
Red Hat Enterprise Linux または CentOS に NFS をインストールするには、次のコマンドを使用します。
sudo yum update &&
sudo yum install nfs-utilsSUSE
SUSE に NFS をインストールするには、次のコマンドを使用します。
sudo zypper update &&
sudo zypper -n install nfs-clientクライアント VM のターミナル ウィンドウで、
autofs
をインストールします。Debian、Ubuntu
sudo apt-get install autofs
RHEL / CentOS
sudo yum install autofs
SUSE
sudo zypper -n install autofs
クライアント VM にファイル共有を動的にマウントするように autofs
を構成する
autofs
の有効化:sudo systemctl enable --now autofs
Filestore ファイル共有にマッピングするローカル ディレクトリを作成します。
sudo mkdir -p mount-point-directory
ここで、
mount-point-directory
は作成するディレクトリです。サブディレクトリを含めることはできません。このガイドでは、マウント ポイント ディレクトリとして/nfs
を使用します。/etc/auto.master
ファイルを開きます。sudo vim /etc/auto.master
/etc/auto.master
ファイルに次の行を追加します。/nfs /etc/auto.nfs --timeout seconds
ここで、
seconds
はマウント タイムアウトまでの秒数です。 デフォルト値は300
です。この値を0
に設定すると、autofs
によるマウント解除が無効になります。/etc/auto.nfs
というファイルを作成します。sudo vim /etc/auto.nfs
/etc/auto.nfs
ファイルに次の行を追加します。mount-point-subdir options ip-address:/file-share
ここで
mount-point-subdir
は、Filestore ファイル共有をマッピングする/nfs
のサブディレクトリです。このサブディレクトリは動的に生成され、クライアント VM 内に存在してはなりません。options
は、NFS マウント オプションです。以下の例外を除き、デフォルトの NFS マウント オプションを使用することをおすすめします。- 自動マウントを使用する場合は、マウント時とマウント解除時のレイテンシを短縮するために、
-o tcp
を指定することをおすすめします。 - Linux カーネル バージョン 5.3 以降を実行しているクライアント VM にゾーン(以前は高スケール SSD)階層インスタンスをマウントする場合は、NFS を増やすために
nconnect
マウント オプションを指定することを検討してください。ゾーンティアの場合は最大7
個の接続を指定し、リージョン ティアとエンタープライズ ティアの場合は最大2
個の接続を指定することをおすすめします。一般に、ファイル共有の容量が大きく、接続しているクライアント VM が少ないほど、nconnect
で追加の接続を指定することでパフォーマンスが向上します。 ip-address
は、Filestore インスタンスの IP アドレスです。file-share
は、インスタンス上のファイル共有の名前です。
- 自動マウントを使用する場合は、マウント時とマウント解除時のレイテンシを短縮するために、
例:
/etc/auto.nfs
の次の行は、IP アドレス10.0.0.2
の Filestore インスタンスのファイル共有vol1
を、read/write
アクセス権を付与して、動的に生成されたサブディレクトリfile-shares
にマウントします。file-shares -rw 10.0.0.2:/vol1
構成をテストする
ファイル共有がマウントされている場合は、マウントを解除する必要があります。
sudo umount mount-point-directory
ここで、
mount-point-directory
は Filestore ファイル共有のマッピング先のパスです。システム起動時にファイル共有をマウントする
/etc/fstab
エントリがある場合、必ず削除します。autofs
を再読み込みします。sudo service autofs reload
構成が機能していることを確認します。
ls mount-point-directory/mount-point-subdir
ここで
mount-point-directory
は、/etc/auto.master
ファイルで示されるマウント ポイント ディレクトリです。mount-point-subdir
は、/etc/auto.nfs
ファイルで示されるマウント ポイント サブディレクトリです。
この例では、コマンドは次のようになります。
ls /nfs/file-shares
自動マウントが正しく構成されると、システムは最初にファイル共有をマウントしてから、
ls
コマンドの結果を返します。ファイル共有は、/etc/auto.master
ファイルで指定されたtimeout
値によって定義された非アクティブ期間後に、自動的にマウント解除されます。
Windows
Windows VM に接続する
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
クライアントとして使用する Windows VM を見つけて、[RDP] をクリックし、その VM へのリモート デスクトップ接続を開きます。詳細については、Windows インスタンスに接続するをご覧ください。
Windows VM に NFS をインストールする
- Windows VM で、管理者として PowerShell を開きます。
PowerShell で NFS クライアントをインストールします。
Install-WindowsFeature -Name NFS-Client
指示に従って Windows VM インスタンスを再起動し、新しいリモート デスクトップ接続を開きます。
NFS クライアントが使用するユーザー ID を構成する
PowerShell
で次のコマンドを実行して、2 つの新しいレジストリ エントリAnonymousUid
とAnonymousGid
を作成します。New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" ` -Name "AnonymousUid" -Value "0" -PropertyType DWORD
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" ` -Name "AnonymousGid" -Value "0" -PropertyType DWORD
NFS クライアント サービスを再起動します。
nfsadmin client stop
nfsadmin client start
ファイル共有を Windows VM にマッピングする
PowerShell
を終了します。exit
省略可: 複数のネットワーク インターフェースを持つクライアント VM に、セカンダリ ネットワーク経由でファイル共有をマウントします。
詳細(クリックして拡大)
セカンダリ ネットワーク(
nic0
以外のインターフェース)を介してファイル共有をマウントする場合は、クライアント VM のルーティング ポリシーを変更する必要があります。次のコマンドを実行します。route -p ^ add filestore-reserved-address-range ^ mask address-range-subnet-mask ^ default-gateway-of-nic-to-filestore
ここで
filestore-reserved-address-range
は、Filestore インスタンスで使用するために予約されているアドレス範囲です。address-range-subnet-mask
は、filestore-reserved-address-range
のサブネット マスクです。たとえば、/29 の予約済みアドレス範囲は 255.255.255.248 サブネット マスクを使用します。default-gateway-of-nic-to-filestore
は、Filestore インスタンスと共有されている VPC ネットワークに接続されている NIC のデフォルト ゲートウェイ IP アドレスです。
例:
route -p add 10.65.21.176 mask 255.255.255.248 10.128.0.1
複数の NIC で Compute Engine インスタンスを使用する方法については、追加のネットワーク インターフェースのルーティングを構成するをご覧ください。
Command Prompt
で、ファイル共有をドライブ文字にマッピングします。net use drive-letter: \\filestore-ip\file-share-name
ここで
- filestore-ip は、Filestore インスタンスの IP アドレスです。
- file-share-name は、Filestore インスタンス上のファイル共有の名前です。
- drive-letter は、マッピングに割り当てるドライブ文字です。
例
次のコマンドは、IP アドレス
10.0.0.2
の Filestore インスタンスのファイル共有vol1
を、クライアント Windows VM のドライブz:
にマッピングします。net use Z: \\10.0.0.2\vol1
省略可: NFS ファイルのロックを使用するには、次の点を確認します。
statd
やnlockmgr
など、必要なすべての NFS ポートにファイアウォール ルールが構成されていることを確認します。PowerShell で次のようなコマンドを使用して、Windows NFS クライアントに予約済みのポートが構成されていることを確認します。
nfsadmin client config protocol=tcp UseReservedPorts=yes nfsadmin client stop nfsadmin client start
ファイル共有上にサブディレクトリを作成し、マウントする
ファイル共有がクライアント VM にマウントされると、ファイル共有上にサブディレクトリを作成できます。これにより、クライアントがファイル共有全体をマウントする代わりに、直接マウントできるようになります。
マウントされたファイル共有上にサブディレクトリを作成するには、次のコマンドを実行します。
sudo mkdir -p mount-point-directory/file-share-sub-dir
ここで
mount-point-directory
は、ファイル共有をマッピングするパスです。file-share-sub-dir
は、作成するファイル共有のサブディレクトリのパスです。
このコマンドは、クライアント VM とファイル共有の両方にサブディレクトリを作成します。たとえば、ファイル共有の
10.0.0.2:/vol1
をクライアント VM のディレクトリ/mnt
にマウントした場合、コマンドsudo mkdir -p /mnt/nfs
は、ファイル共有に10.0.0.2:/vol1/nfs
を作成し、クライアント VM には/mnt/nfs
を作成します。省略可: ファイル共有がマウントされているクライアント VM 上のディレクトリにファイル共有サブディレクトリをマウントする場合は、まずファイル共有をマウント解除する必要があります。
sudo umount mount-point-directory
ここで、
mount-point-directory
はファイル共有がマッピングされているディレクトリです。サブディレクトリをマウントします。
sudo mount ip-address:/file-share/file-share-sub-dir mount-point-directory
ここで
ip-address
は、Filestore インスタンスの IP アドレスです。file-share
は、インスタンス上のファイル共有の名前です。file-share-sub-dir
は、マウントするファイル共有内のサブディレクトリのパスです。mount-point-directory
は、Filestore ファイル共有をマッピングするパスです。
例: 次のコマンドで、
sudo mount 10.0.0.2:/vol1/nfs /mnt/nfs
10.0.0.2
は、Filestore インスタンスの IP アドレスです。vol1
はファイル共有の名前です。nfs
はファイル共有サブディレクトリです。/mnt/nfs
は、ファイル共有サブディレクトリnfs
がマッピングされているクライアント VM 上のディレクトリです。
次のステップ
- マウントされたファイル共有にデータをコピーする方法を確認する。
- リモート ネットワーク内のクライアントでファイル共有をマウントする方法を確認する
- Filestore に関連するマウントに関する問題のトラブルシューティングを行う。