このページでは、同じ 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オプションを使用することをおすすめします。オプション 説明 hardNFS クライアントは、NFS リクエストを無期限に再試行します。Filestore インスタンスを再起動したときに I/O 停止の可能性を減らすには、Linux と Windows の両方のクライアントに hardマウント オプションを使用することをおすすめします。timeo=600NFS クライアントは、NFS リクエストを再試行するまで 600 デシ秒(60 秒)待ちます。 retrans=3NFS クライアントは、NFS リクエストを 3 回試行してから、さらに復旧処理を行います。 rsize=524288NFS クライアントは、NFS サーバーから READリクエストごとに最大 524,288 バイトを受信できます。
注: ベーシック ティア インスタンスの場合は、rsize値を1048576に設定します。wsize=524288NFS クライアントは、 WRITEリクエストごとに最大 524,288 バイトを NFS サーバーに送信できます。resvportNFS クライアントは、このマウント ポイントの NFS サーバーと通信するときに特権ソースポートを使用します。 asyncNFS クライアントは、特定の条件が満たされるまで、NFS サーバーへのアプリケーション書き込みの送信を遅らせます。
注意:syncオプションを使用すると、パフォーマンスが大幅に低下します。- マウント レイテンシを短縮するには、
-o tcpオプションを指定します。 Linux カーネル バージョン 5.3 以降を実行しているクライアント VM にリージョン、ゾーン、またはエンタープライズ インスタンスをマウントする場合は、NFS のパフォーマンスを向上させるために
nconnectの指定を検討してください。特定のサービスティアでは、クライアントとサーバー間の接続数を次のように指定することをおすすめします。階層 容量 接続の数 リージョン、ゾーン 1~9.75 TiB nconnect=2リージョン、ゾーン 10~100 TiB nconnect=7Enterprise - nconnect=2高スケール SSD - nconnect=7一般に、ファイル共有の容量が大きく、接続しているクライアント 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 にリージョン、ゾーン、またはエンタープライズ インスタンスをマウントする場合は、NFS のパフォーマンスを向上させるために
nconnectの指定を検討してください。特定のサービスティアでは、クライアントとサーバー間の接続数を次のように指定することをおすすめします。
階層 容量 接続の数 リージョン、ゾーン 1~9.75 TiB nconnect=2リージョン、ゾーン 10~100 TiB nconnect=7Enterprise - nconnect=2高スケール SSD - nconnect=7一般に、ファイル共有の容量が大きく、接続しているクライアント 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 autofsRHEL / CentOS
sudo yum install autofsSUSE
sudo zypper -n install autofs
クライアント VM にファイル共有を動的にマウントするように autofs を構成する
autofsの有効化:sudo systemctl enable --now autofsFilestore ファイル共有にマッピングするローカル ディレクトリを作成します。
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 にリージョン、ゾーン、またはエンタープライズ インスタンスをマウントする場合は、NFS のパフォーマンスを向上させるために
nconnectの指定を検討してください。特定のサービスティアでは、クライアントとサーバー間の接続数を次のように指定することをおすすめします。
階層 容量 接続の数 リージョン、ゾーン 1~9.75 TiB nconnect=2リージョン、ゾーン 10~100 TiB nconnect=7Enterprise - nconnect=2高スケール SSD - nconnect=7一般に、ファイル共有の容量が大きく、接続しているクライアント 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 を開き、NFS のアクセスと権限が適切であることを確認します。
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 DWORDNew-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" ` -Name "AnonymousGid" -Value "0" -PropertyType DWORDNFS クライアント サービスを再起動します。
nfsadmin client stopnfsadmin 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/nfs10.0.0.2は、Filestore インスタンスの IP アドレスです。vol1はファイル共有の名前です。nfsはファイル共有サブディレクトリです。/mnt/nfsは、ファイル共有サブディレクトリnfsがマッピングされているクライアント VM 上のディレクトリです。
次のステップ
- マウントされたファイル共有にデータをコピーする方法を確認する。
- リモート ネットワーク内のクライアントでファイル共有をマウントする方法を確認する
- Filestore に関連するマウントに関する問題のトラブルシューティングを行う。