Bare Metal Solution 環境に NFS ファイル ストレージを追加する

このガイドでは、Bare Metal Solution 環境でのファイル ストレージ用ネットワーク ファイル システム(NFS)の設定と使用の方法について説明します。このドキュメントでは、NFS ファイル システムの使用の基本的な知識と、Linux システム管理の基本的な知識があることを前提としています。

Bare Metal Solution の NFS ファイル ストレージについて

NFS は、一般的なスクリプト、インストール ファイル、バックアップ ファイル用のローカル共有ファイル ストレージとして使用できます。NFS ボリュームは、NFS マウント ディレクトリを介して 1 つ以上の Bare Metal Solution サーバーにストレージを提供します。Bare Metal Solution サーバーに NFS ボリュームをマウントすると、他のファイル システムと同様にストレージにアクセスできます。

Bare Metal Solution で NFS ファイル ストレージを使用するには、次の 2 つの手順が必要です。

  1. NFS ボリュームに必要な設定を決定し、Google Cloud と共有する。
  2. Bare Metal Solution サーバーに NFS ボリュームをマウントする。

Bare Metal Solution で NFS ファイル ストレージを使用する際のヒントと事実をご紹介します。

  • Bare Metal Solution サーバーは、Bare Metal Solution 環境に割り当てたクライアント ネットワークまたはプライベート ネットワークから予約されたサービス サブネットを介して NFS ボリュームと通信します。一般的な /24 ネットワークの場合は、NFS などのサービスに /28 サブネットを使用することをおすすめします。
  • サブネットごとに 1 つの NFS ボリュームを割り当てることができます。そのため、NFS ボリュームを複数の VLAN で 共有することはできません。
  • Google Cloud では、Bare Metal Solution 環境で NFS v3 を使用します。
  • NFS を使用して Oracle データファイルやログファイルを保存することはおすすめしません。
  • Google Cloud は、Bare Metal Solution をホストする同じリージョン拡張内で NFS を提供します。NFS ファイル ストレージは、Google Cloud リージョンをまたぐことはありません。マルチリージョンの共有ストレージが必要な場合は、Filestore の使用を検討してください。NFS ボリューム間またはリージョン間のストレージ ベースのレプリケーションは行いません。
  • Google Cloud は保存データを暗号化します。Bare Metal Solution サーバーとストレージ デバイスの間で転送されるデータは暗号化されません。トラフィックの転送データの暗号化が必要な場合は、アプリケーション レベルで暗号化を構成することをおすすめします。詳細については、Cloud Interconnect 経由のトラフィックを暗号化するにはどうすればよいですか?をご覧ください。
  • Bare Metal Solution の NFS ファイル ストレージでは、ネットワーク帯域幅のスロットリングは行われません。大量で同時実行性の高いバッチ ワークロード(バックアップなど)は、他のワークロードのパフォーマンスに影響を与える可能性があるため、帯域幅の使用量の制限とバッチ ワークロードなどの同時処理を検討してください。
  • Google Cloud で提供されるその他の共有ストレージ オプションには、Filestore と Bare Metal Solution サーバーの FUSE でマウントされた Google Cloud Storage バケットがあります。Google Cloud Console を使用してこのストレージを Google Cloud で動的に割り当て、Cloud Interconnect を使用してリージョン拡張を Google Cloud リージョンと結合できます。

NFS の詳細については、ネットワーク ファイル システムをご覧ください。

Oracle データベースで NFS ファイル ストレージを使用する方法については、次の記事をご覧ください(Oracle アカウントが必要です)。

Bare Metal Solution 用の NFS ファイル ストレージをリクエストする

Bare Metal Solution 環境に NFS ファイル ストレージを追加するには、Google Cloud セールス経由で NFS ボリュームを注文する必要があります。NFS ボリュームを注文して割り当てられたら、NFS ボリュームを作成するの手順に従って設定できます。

次の例に示すように、Google Cloud コンソールのインテーク フォームの [ボリューム] セクションで、使用可能なボリュームの割り当てを確認できます。

Google Cloud コンソールのインテーク フォームで利用可能な割り当てメッセージがハイライト表示されます

プロビジョニングに十分なボリューム割り当てがない場合は、Google Cloud セールスにさらに多くの容量をご注文ください。

ボリュームの割り当てが使用可能になったら、Bare Metal Solution 環境用の NFS ファイル ストレージをプロビジョニングするために次の情報を収集して提供する必要があります。

フィールド 説明
Google Cloud プロジェクト ID Google Cloud プロジェクトの [ようこそ] ページに移動して、プロジェクト ID を確認します。 マイ プロジェクト
リージョン Bare Metal Solution 環境をホストするリージョン拡張に近い Google Cloud リージョン。 us-central1
クライアント ネットワークとプライベート ネットワーク Bare Metal Solution 環境の設定時に選択した 2 つのサブネット。 ドキュメントの例では、192.168.1.0/24 Google Cloud に接続するクライアント ネットワークで、192.168.2.0/24リージョン拡張内のサービスに使用されるプライベート ネットワークです。
名前 NFS ボリュームの名前。 ボリュームの名前を選択します。名前を選択しない場合、Google Cloud によって NFS ボリューム名が自動的に生成されます。名前の例: at-1234567-nfs001
データの保存をリクエストするストレージのタイプ。ソリッド ステート ドライブ(SSD)を選択する場合は [オール フラッシュ]、ハードディスク ドライブ(HDD)を選択する場合は [すべてのディスク] を選択します。 オール フラッシュ
サイズ 必要なドライブサイズを選択します。最小 100 GiB、最大 16 TiB のストレージ容量を選択できます。 1 TiB(1,024 GiB)
スナップショットを有効にする 日次スナップショットを有効にする場合は [はい]、無効にする場合は [いいえ] を選択します。
  • この機能を有効にすると、Google Cloud は NFS ボリュームのスナップショットを 7 日間毎日実行します。7 日が経過すると、新しいスナップショットによって古いスナップショットが上書きされます。また、リクエストされた NFS ストレージの 20% がスナップショット用に予約されます。
  • この機能を有効にしない場合は、NFS ボリュームの独自のバックアップを実行する必要があります。
プロトコル 使用するストレージ プロトコルを指定します。この項目を使用して、NFS が必要であることを示します。 NFS(ネットワーク ファイル システム)
ネットワーク NFS ボリュームにアクセスできるサブネット。通常、これは Bare Metal Solution 環境のクライアント ネットワークです。 クライアント ネットワークとプライベート ネットワークで選択した値を再利用します。
ターゲット 個々の Bare Metal Solution サーバー(単一サーバー)またはサブネット上のすべてのサーバー(CIDR)からの NFS ボリュームへのアクセスを許可します。 CIDR
サーバー NFS ボリュームにアクセスできる Bare Metal Solution サーバーの名前。 例: at-7654321-svr001
サービスの IP アドレス範囲 ストレージとサービスに使用するクライアント ネットワークまたはプライベート ネットワークから、ネットワーク IP アドレス範囲のサブセットを選択します。Google Cloud は、NFS などのサービス用にこの範囲を予約します。通常、サービス IP アドレス範囲は /26、/27、または /28 サブネットを使用します。

Oracle 環境では、NFS ファイル ストレージに Bare Metal Solution クライアント ネットワークを使用し、Oracle アプリケーション用にプライベート ネットワークを予約します。
この例で、192.168.1.240/28 はクライアント ネットワークのサブネットです。
マウントの権限 読み取り / 書き込み権限または読み取り専用権限を選択します。 読み書き
ルート スカッシュなし 新しい NFS ボリュームでは、このオプションを True に設定することをおすすめします。デフォルトでは、NFS ボリュームには 755 権限とオーナー root(0) があります。ルート スカッシュが有効になっていて、すべての新しい NFS ボリュームがユーザー root によって所有されている場合、NFS ボリュームにファイルを書き込むことはできません。したがって、まず no_root_squash=True を使用して NFS ボリュームを作成し、ディレクトリ構造を構築して、NFS ボリュームの権限または所有権を変更します。次に、使用できるクライアントを削除してから追加し直して、no_root_squash=False による NFS ボリュームの変更を行います。NFS ボリュームを更新するをご覧ください。 True
SUID を許可する このオプションを選択すると、ユーザーはファイル、プログラム、またはコマンドの実行中に一時的にファイル オーナーの権限を受け取ることができます。このオプションを選択しないと、NFS は一時的なファイル オーナーの権限を提供しません。 False
dev を許可する このオプションを選択すると、ファイル システムで文字を解釈したり、特殊なデバイスをブロックしたりできます。このオプションを選択しない場合でも、システムでの NFS ボリュームへの書き込みが可能ですが、文字の作成や特殊なデバイスのブロックは行えません。 True

Google Cloud で注文が処理されると、NFS ボリュームパスが送信されます。パスの形式は次のとおりです。

NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME

たとえば、NFS サーバーの IP アドレスが 192.168.1.240 で、NFS 共有名が at-1234567-nfs001 の場合、NFS ボリュームのパスは次のようになります。

192.168.1.240:/at-1234567-nfs001

Bare Metal Solution 用の NFS ファイル ストレージを構成する

次の例では、Bare Metal Solution サーバーの NFS ファイル ストレージを構成しています。ここでは、Red Hat Enterprise Linux コマンドを使用します。別のオペレーティング システムを使用している場合は、必要なコマンドも異なる可能性があります。

  1. NFS ボリュームをマウントする前。

    1. Bare Metal Solution サーバーにアクセスするための踏み台ホスト VM インスタンスを作成したことを確認します。詳細については、Google Cloud で踏み台ホスト VM インスタンスを作成するをご覧ください。
    2. Bare Metal Solution サーバーへのインターネット アクセスを提供し、必要なインストール パッケージをダウンロードできるようにします。インターネット アクセスの詳細については、インターネットへのアクセスをご覧ください。

    3. Bare Metal Solution サーバー コンソールに移動します。

      1. Google Cloud プロジェクトで、[Compute Engine] > [VM インスタンス] に移動します。

      2. 踏み台ホスト VM インスタンスの [SSH] ボタンをクリックします。

      3. SSH を使用して Bare Metal Solution サーバーに接続し、自分のユーザー名とパスワードでログインします。

        [USERNAME@INSTANCE_JUMP_HOST ~]$ ssh ADMIN_USER@BMS_SERVER_IP_ADDRESS
        ADMIN_USER@BMS_SERVER_IP_ADDRESS's password:
        Last login: Wed May 26 22:25:47 2021 from JUMP_HOST_IP_ADDRESS
        [ADMIN_USER@BMS_SERVER_NAME ~]$
        
    4. DNS にアクセスするには、Bare Metal Solution サーバーに DNS サーバー エントリを追加します。

      sudo bash -c "echo \"nameserver DNS_SERVER_IP_ADDRESS\" >> /etc/resolv.conf"
      

      Cloud DNS を使用して、DNS サーバーの IP アドレスの代わりに受信フォワーダーのエントリ ポイントを指定することもできます。Cloud DNS の詳細については、Cloud DNS の概要をご覧ください。

    5. パッケージの更新を許可するようにオペレーティング システムを構成します。

    6. Bare Metal Solution サーバーに NFS パッケージをインストールします。

      sudo yum install -y nfs-utils
      
  2. NFS ボリュームをマウントします。

    1. Bare Metal Solution サーバーにマウント ディレクトリを作成します。

      sudo mkdir -p /mnt/DIRECTORY_NAME
      
    2. Google Cloud から送信された NFS ボリュームのパスを確認します。

    3. NFS ボリュームをマウントします。NFS の一般的な使用には、次のコマンドを使用します。

       sudo mount -t nfs NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME /mnt/DIRECTORY_NAME
      
      ワークロードによっては、nconnect オプションを追加すると最適なパフォーマンスが得られます。nconnect オプションを使用して NFS ボリュームをマウントするには、次のコマンドを使用します。RHEL 7 の場合は、複数の NFS クライアントを使用すると同様のパフォーマンスが得られます。
       sudo mount -t nfs -o \
         rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,nconnect=8 \
         NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME /mnt/DIRECTORY_NAME
      
      Bare Metal Solution 環境のほとんどの Oracle 実装では、次のコマンドを使用してボリュームをマウントします。
       sudo mount -t nfs -o \
         rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600 \
         NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME /mnt/DIRECTORY_NAME
      
      Oracle 実装で NFS ボリューム上のライブ Oracle RAC バイナリまたはデータファイルが必要とされる場合は、actimeo オプションを指定して次のコマンドを入力します。これにより、複数のクライアントから同時に書き込みを行うときにクライアント側属性のキャッシュが無効になりますが、I/O パフォーマンスに影響する可能性があります。
       sudo mount -t nfs -o \
        -rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 \
        NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME /mnt/DIRECTORY_NAME
      
    4. サーバーが再起動したときに NFS ボリュームを自動的にマウントするには、fstab ファイルの末尾に次のエントリを追加します。このファイルは Bare Metal Solution サーバーの /etc ディレクトリにあります。sudo 管理者権限とテキスト エディタを使用してファイルを編集します。各エントリの間には必ず 3 つのスペースを記述します。

      NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME   /mnt/DIRECTORY_NAME   nfs    defaults,nofail   0 0
      
      [ADMIN_USER@BMS_SERVER_NAME ~]$ sudo -i
      [root@BMS_SERVER_NAME ~]# cd /etc
      [root@BMS_SERVER_NAME etc]# vi fstab
      [root@BMS_SERVER_NAME etc]# cat fstab
      #
      # /etc/fstab
      # Created by anaconda on Sun Feb 16 10:06:11 2020
      #
      # Accessible filesystems, by reference, are maintained under '/dev/disk'
      # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
      #
      /dev/mapper/rootvg-rootlv /                       xfs     defaults        0 0
      UUID=bc39a085-d080-488e-9402-d22558bc88ae /boot                   xfs     defaults        0 0
      UUID=4127-64CB          /boot/efi               vfat    defaults,uid=0,gid=0,umask=0077,shortname=winnt 0 0
      /dev/mapper/rootvg-homelv /home                   xfs     defaults        0 0
      /dev/mapper/rootvg-optlv /opt                    xfs     defaults        0 0
      /dev/mapper/rootvg-tmplv /tmp                    xfs     defaults        0 0
      /dev/mapper/rootvg-varlv /var                    xfs     defaults        0 0
      /dev/mapper/rootvg-swaplv swap                    swap    defaults        0 0
      **NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME   /mnt/DIRECTORY_NAME   nfs    defaults,nofail   0 0**
      
    5. ボリュームにアクセスできることを確認します。

      mount -l | grep nfs
      
      NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME on /mnt/DIRECTORY_NAME type nfs
      (rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,
      hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=NFS_SERVER_IP_ADDRESS,
      mountvers=3,mountport=635,mountproto=udp,local_lock
      =none,addr=NFS_SERVER_IP_ADDRESS)
      
    6. NFS ディレクトリにテストファイルを追加します。

      cd /mnt/DIRECTORY_NAME
      echo 'testing' | sudo tee -a testfile
      sudo cat testfile
      sudo rm testfile
      

Bare Metal Solution 用の NFS ファイル ストレージを表示する

  • ボリュームを表示するには、次のコマンドを使用します。

    mount | grep NFS_SHARE_NAME
    
    NFS_SERVER_IP_ADDRESS:/NFS_SHARE_NAME on /mnt/DIRECTORY_NAME type nfs
    (rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,
    hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=NFS_SERVER_IP_ADDRESS,
    mountvers=3,mountport=635,mountproto=udp,local_lock
    =none,addr=NFS_SERVER_IP_ADDRESS)
    

Bare Metal Solution の NFS ファイル ストレージをマウント解除する

  • 次のコマンドを使用して NFS ボリュームのマウントを解除し、削除されたことを確認します。

    sudo umount /mnt/DIRECTORY_NAME
    mount | grep NFS_SHARE_NAME