ノート:

Oracle Cloud InfrastructureでのNFSキャッシュのデプロイ

イントロダクション

複数のクラウドベースのコンピュート・インスタンスでオンプレミスのNFSストレージへのアクセスが必要な場合、NFSキャッシュをクラウドにデプロイできます。NFSパフォーマンス・データを改善するために、NFSクライアントがリクエストしたときにクラウドにキャッシュされます。NFSクライアント・ノードは、ライトスルー・キャッシュを使用して、NFSオリジン・ファイル・サーバーにデータを直接書き込みます。

NFSパフォーマンスはネットワーク・レイテンシに非常に敏感です。比較的小さいネットワーク・レイテンシであっても、読取りと書込みの両方でNFSのパフォーマンスが大幅に低下する可能性があります。オンプレミスのNFSストレージを使用する場合、クラウドにNFSキャッシュをデプロイすると、特に読取り重度のワークロードでパフォーマンスが大幅に向上する可能性があります。

目標

NFSキャッシュ・ソリューションをOracle Cloud Infrastructure(OCI)にデプロイします。

前提条件

NFSキャッシュがインストールされるプライベートまたはパブリック・サブネットを使用して、仮想クラウド・ネットワーク(VCN)を構成する必要があります。OCIサブネットはオンプレミスのNFSサーバーへの接続を持ち、TCPポート2049はサブネット・セキュリティ・リストでオープンしている必要があります。オンプレミスのNFSサーバーとクラウド上のNFSキャッシュ・サーバーの間にVPNトンネルまたはOCI Fast Connectを設定することをお薦めします。

ノート: このチュートリアルでは、NFS4バージョンを参照します。古いNFSバージョンでは、サブネット・セキュリティ・リストの追加ポートを開く必要がある場合があります。

アーキテクチャ

NFSキャッシュは、さまざまなアーキテクチャーにデプロイできます。この例では、次のアーキテクチャを使用しています。

Image1

高可用性(HA)の場合、2つ以上のバックエンドNFSキャッシュ・サーバーを含むネットワーク・ロード・バランサをインストールし、ネットワーク・ロード・バランサ・リスナーでTCP/2049ポートを構成できます。

Image2

タスク1: FS-Cacheサーバーのインストールと構成

  1. OCIにNFSキャッシュをデプロイするには、E4のいずれかを使用してOracle Linuxコンピュート・インスタンスをプロビジョニングします。DenseIO.Flexシェイプ。

    Image3

    ノート: これらのDense I/Oシェイプには、異なる数のNVMeローカル・ディスクがあります。NVMeストレージは、NFSデータのキャッシュに使用されます。ストレージ要件に基づいてシェイプを選択します。

  2. VCNおよびサブネットを選択し、パブリックSSHキーを追加します。

  3. 拡張オプションを開き、cloud-initスクリプトを追加します: install.sh

    Image4

    このスクリプトでは次の処理が行われます:

    1. 使用可能なNVMeディスクでRAID-0を構成します。
    2. RAID-0デバイスにファイルシステムを作成し、マウントします。
    3. cachefiledパッケージをインストールし、cachefiledサービスを開始します
    4. NFSサーバーを有効にします。
    5. SELinuxおよびLinuxファイアウォールを構成します

タスク2: NFS共有の作成およびエクスポート

  1. NFSマウント・ポイントのディレクトリを作成し、-fscオプションを使用してNFSサーバー共有をFS-Cache VMにマウントします。たとえば:

    sudo mount <NFS-server-IP>:<NFS-share> <FS-Cache-mount-point> -o fsc
    
    where:  <NFS-server-IP> is the IP of the origin NFS server
    	<NFS-share> is the path of NFS share directory from the origin NFS server
    	<FS-Cache-mount-point> is the mount point on FS-Cache server
    
  2. /etc/exportsファイルを編集して、ローカル・マウント・ポイントをエクスポートします。

    sudo echo "<FS-Cache-mount-point> *(rw,wdelay,no_root_squash,no_subtree_check,fsid=10,sec=sys,rw,secure,no_root_squash,no_all_squash)" > /etc/exports
    
  3. <FS-Cache-mount-point>をマウント・ポイントの実際のパスに置き換えます。exportfsコマンドを実行します。

    sudo exportfs -a
    
  4. cachfilesdサービスが実行されていることを確認します。

    sudo systemctl status cachefilesd
    

    Image5

タスク3: NFSクライアントでのNFS共有のマウント

FS-CacheサーバーからNFSクライアントにエクスポートされたマウント・ディレクトリ。たとえば、NFSクライアントでは、次のコマンドを実行できます。

sudo mount <FS-Cache-IP>:<FS-Cache-mount-point> <local-mount-point>

where:  <FS-Cache-server-IP> is the IP of FS-Cache server
	<FS-Cache-mount-point> is the path exported from FS-Cache server
	<local-mount-point> is the mount point on NFS client  

FS-Cacheサーバにまだキャッシュされていないファイルを読み込むと、アクセス時間が長くなります。ただし、ファイルがキャッシュされると、読み取り時間は同じLAN上のNFSサーバーへのアクセスと同等になります。この違いは、多くのNFSクライアントがNFS共有から同じ内容を読み取る場合、さらに明白になります。

謝辞

作成者 - Michael Prestin(マスター・プリンシパル・クラウド・アーキテクト)

その他の学習リソース

docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。