Red Hat Enterprise Linux for SAP NetWeaver における Azure VM での GlusterFSGlusterFS on Azure VMs on Red Hat Enterprise Linux for SAP NetWeaver

この記事では、仮想マシンをデプロイする方法、仮想マシンを構成する方法、および可用性の高い SAP システムの共有データを格納するために使用できる GlusterFS クラスターをインストールする方法について説明します。This article describes how to deploy the virtual machines, configure the virtual machines, and install a GlusterFS cluster that can be used to store the shared data of a highly available SAP system. このガイドでは、NW1 と NW2 の 2 つの SAP システムで使用される GlusterFS を設定する方法について説明します。This guide describes how to set up GlusterFS that is used by two SAP systems, NW1 and NW2. この例のリソース (仮想マシン、仮想ネットワークなど) の名前は、リソース プレフィックスが glustSAP ファイル サーバー テンプレートを使用していることを想定しています。The names of the resources (for example virtual machines, virtual networks) in the example assume that you have used the SAP file server template with resource prefix glust.

はじめに、次の SAP Note およびガイドを確認してくださいRead the following SAP Notes and papers first

概要Overview

高可用性を実現するため、SAP NetWeaver には共有ストレージが必要です。To achieve high availability, SAP NetWeaver requires shared storage. GlusterFS は別のクラスターで構成されており、複数の SAP システムでそれを使用できます。GlusterFS is configured in a separate cluster and can be used by multiple SAP systems.

SAP NetWeaver の高可用性の概要

GlusterFS の設定Set up GlusterFS

GitHub にある Azure テンプレートを使用して、仮想マシン、可用性セット、ネットワーク インターフェイスなどの必要なすべての Azure リソースをデプロイできます。また、各リソースを手動でデプロイすることもできます。You can either use an Azure Template from github to deploy all required Azure resources, including the virtual machines, availability set and network interfaces or you can deploy the resources manually.

Azure テンプレートを使用した Linux のデプロイDeploy Linux via Azure Template

Azure Marketplace には Red Hat Enterprise Linux のイメージが含まれており、これを新しい仮想マシンのデプロイに使用できます。The Azure Marketplace contains an image for Red Hat Enterprise Linux that you can use to deploy new virtual machines. GitHub にあるいずれかのクイック スタート テンプレートを使用して、必要なすべてのリソースをデプロイできます。You can use one of the quickstart templates on github to deploy all required resources. テンプレートでは仮想マシンや可用性セットなどをデプロイできます。テンプレートをデプロイするには、次の手順に従います。The template deploys the virtual machines, availability set etc. Follow these steps to deploy the template:

  1. Azure portal で SAP ファイル サーバー テンプレートを開きますOpen the SAP file server template in the Azure portal
  2. 次のパラメーターを入力しますEnter the following parameters
    1. Resource Prefix (リソース プレフィックス)Resource Prefix
      使用するプレフィックスを入力します。Enter the prefix you want to use. この値は、デプロイされるリソースのプレフィックスとして使用されます。The value is used as a prefix for the resources that are deployed.
    2. SAP システム数: このファイル サーバーを使用する SAP システムの数を入力します。SAP System Count Enter the number of SAP systems that will use this file server. これにより、必要な数のディスクなどがデプロイされます。This will deploy the required number of disks etc.
    3. OS の種類Os Type
      いずれかの Linux ディストリビューションを選択します。Select one of the Linux distributions. この例では RHEL 7 を選択しますFor this example, select RHEL 7
    4. 管理ユーザー名、管理パスワード、SSH キーAdmin Username, Admin Password or SSH key
      コンピューターへのログオンで使用できる新しいユーザーが作成されます。A new user is created that can be used to log on to the machine.
    5. サブネット IDSubnet ID
      VM を既存の VNet にデプロイする場合、その VNet で VM の割り当て先サブネットが定義されているときは、その特定のサブネットの ID を指定します。If you want to deploy the VM into an existing VNet where you have a subnet defined the VM should be assigned to, name the ID of that specific subnet. 通常、この ID は、/subscriptions/ <サブスクリプション ID> /resourceGroups/ <リソース グループ名> /providers/Microsoft.Network/virtualNetworks/ <仮想ネットワーク名> /subnets/ <サブネット名> のようになります。The ID usually looks like /subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.Network/virtualNetworks/<virtual network name>/subnets/<subnet name>

Azure Portal を使用した手動による Linux のデプロイDeploy Linux manually via Azure portal

まず、このクラスターの仮想マシンを作成する必要があります。You first need to create the virtual machines for this cluster. その後、ロード バランサーを作成し、バックエンド プール内の仮想マシンを使用します。Afterwards, you create a load balancer and use the virtual machines in the backend pools. Standard Load Balancer をお勧めします。We recommend standard load balancer.

  1. リソース グループを作成しますCreate a Resource Group
  2. 仮想ネットワークを作成しますCreate a Virtual Network
  3. 可用性セットを作成しますCreate an Availability Set
    更新ドメインの最大数を設定しますSet max update domain
  4. 仮想マシン 1 を作成しますCreate Virtual Machine 1
    この Red Hat Enterprise Linux 7.4 イメージの例では、RHEL 7 以上を使用しますhttps://portal.azure.com/#create/RedHat.RedHatEnterpriseLinux74-ARMUse at least RHEL 7, in this example the Red Hat Enterprise Linux 7.4 image https://portal.azure.com/#create/RedHat.RedHatEnterpriseLinux74-ARM
    前に作成された可用性セットを選択しますSelect Availability Set created earlier
  5. 仮想マシン 2 を作成しますCreate Virtual Machine 2
    この Red Hat Enterprise Linux 7.4 イメージの例では、RHEL 7 以上を使用しますhttps://portal.azure.com/#create/RedHat.RedHatEnterpriseLinux74-ARMUse at least RHEL 7, in this example the Red Hat Enterprise Linux 7.4 image https://portal.azure.com/#create/RedHat.RedHatEnterpriseLinux74-ARM
    前に作成された可用性セットを選択しますSelect Availability Set created earlier
  6. SAP システムごとに 1 つのデータ ディスクを両方の仮想マシンに追加します。Add one data disk for each SAP system to both virtual machines.

GlusterFS を構成するConfigure GlusterFS

次の各手順の先頭には、[A] - 全ノードが該当、[1] - ノード 1 のみ該当、[2] - ノード 2 のみ該当、[3] - ノード 3 のみ該当、のいずれかが付いています。The following items are prefixed with either [A] - applicable to all nodes, [1] - only applicable to node 1, [2] - only applicable to node 2, [3] - only applicable to node 3.

  1. [A] ホスト名解決を設定します[A] Setup host name resolution

    DNS サーバーを使用するか、すべてのノードの /etc/hosts を変更します。You can either use a DNS server or modify the /etc/hosts on all nodes. この例では、/etc/hosts ファイルを使用する方法を示しています。This example shows how to use the /etc/hosts file. 次のコマンドの IP アドレスとホスト名を置き換えますReplace the IP address and the hostname in the following commands

    sudo vi /etc/hosts
    

    次の行を /etc/hosts に挿入します。Insert the following lines to /etc/hosts. お使いの環境に合わせて IP アドレスとホスト名を変更しますChange the IP address and hostname to match your environment

    # IP addresses of the Gluster nodes
    10.0.0.40 glust-0
    10.0.0.41 glust-1
    10.0.0.42 glust-2
    
  2. [A] 登録します[A] Register

    使用する仮想マシンを登録し、それを、RHEL 7 および GlusterFS 用のリポジトリを含むプールに追加しますRegister your virtual machines and attach it to a pool that contains repositories for RHEL 7 and GlusterFS

    sudo subscription-manager register
    sudo subscription-manager attach --pool=<pool id>
    
  3. [A] GlusterFS リポジトリを有効にします[A] Enable GlusterFS repos

    必要なパッケージをインストールするには、次のリポジトリを有効にします。In order to install the required packages, enable the following repositories.

    sudo subscription-manager repos --disable "*"
    sudo subscription-manager repos --enable=rhel-7-server-rpms
    sudo subscription-manager repos --enable=rh-gluster-3-for-rhel-7-server-rpms
    
  4. [A] GlusterFS パッケージをインストールします[A] Install GlusterFS packages

    これらのパッケージをすべての GlusterFS ノードにインストールしますInstall these packages on all GlusterFS nodes

    sudo yum -y install redhat-storage-server
    

    インストール後にノードを再起動します。Reboot the nodes after the installation.

  5. [A] ファイアウォール ルールを変更します[A] Modify Firewall

    GlusterFS ノードへのクライアント トラフィックを許可するためのファイアウォール規則を追加します。Add firewall rules to allow client traffic to the GlusterFS nodes.

    # list the available zones
    firewall-cmd --get-active-zones
    
    sudo firewall-cmd --zone=public --add-service=glusterfs --permanent
    sudo firewall-cmd --zone=public --add-service=glusterfs
    
  6. [A] GlusterFS サービスを有効にして開始します[A] Enable and start GlusterFS service

    すべてのノード上の GlusterFS サービスを開始します。Start the GlusterFS service on all nodes.

    sudo systemctl start glusterd
    sudo systemctl enable glusterd
    
  7. [1] GluserFS を作成します[1] Create GluserFS

    以下のコマンドを実行して、GlusterFS クラスターを作成しますRun the following commands to create the GlusterFS cluster

    sudo gluster peer probe glust-1
    sudo gluster peer probe glust-2
    
    # Check gluster peer status
    sudo gluster peer status
    
    # Number of Peers: 2
    # 
    # Hostname: glust-1
    # Uuid: 10d43840-fee4-4120-bf5a-de9c393964cd
    # State: Accepted peer request (Connected)
    # 
    # Hostname: glust-2
    # Uuid: 9e340385-12fe-495e-ab0f-4f851b588cba
    # State: Accepted peer request (Connected)
    
  8. [2] ピアの状態をテストします[2] Test peer status

    2 番目のノード上でピアの状態をテストしますTest the peer status on the second node

    sudo gluster peer status
    # Number of Peers: 2
    #
    # Hostname: glust-0
    # Uuid: 6bc6927b-7ee2-461b-ad04-da123124d6bd
    # State: Peer in Cluster (Connected)
    #
    # Hostname: glust-2
    # Uuid: 9e340385-12fe-495e-ab0f-4f851b588cba
    # State: Peer in Cluster (Connected)
    
  9. [3] ピアの状態をテストします[3] Test peer status

    3 番目のノード上でピアの状態をテストしますTest the peer status on the third node

    sudo gluster peer status
    # Number of Peers: 2
    #
    # Hostname: glust-0
    # Uuid: 6bc6927b-7ee2-461b-ad04-da123124d6bd
    # State: Peer in Cluster (Connected)
    #
    # Hostname: glust-1
    # Uuid: 10d43840-fee4-4120-bf5a-de9c393964cd
    # State: Peer in Cluster (Connected)
    
  10. [A] LVM を作成します[A] Create LVM

    この例では、NW1 と NW2 の 2 つの SAP システムで GlusterFS を使用します。In this example, the GlusterFS is used for two SAP systems, NW1 and NW2. 次のコマンドを使用して、これらの SAP システム用の LVM 構成を作成します。Use the following commands to create LVM configurations for these SAP systems.

    NW1 には以下のコマンドを使用しますUse these commands for NW1

    sudo pvcreate --dataalignment 1024K /dev/disk/azure/scsi1/lun0
    sudo pvscan
    sudo vgcreate --physicalextentsize 256K rhgs-NW1 /dev/disk/azure/scsi1/lun0
    sudo vgscan
    sudo lvcreate -l 50%FREE -n rhgs-NW1/sapmnt
    sudo lvcreate -l 20%FREE -n rhgs-NW1/trans
    sudo lvcreate -l 10%FREE -n rhgs-NW1/sys
    sudo lvcreate -l 50%FREE -n rhgs-NW1/ascs
    sudo lvcreate -l 100%FREE -n rhgs-NW1/aers
    sudo lvscan
    
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW1/sapmnt
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW1/trans
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW1/sys
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW1/ascs
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW1/aers
    
    sudo mkdir -p /rhs/NW1/sapmnt
    sudo mkdir -p /rhs/NW1/trans
    sudo mkdir -p /rhs/NW1/sys
    sudo mkdir -p /rhs/NW1/ascs
    sudo mkdir -p /rhs/NW1/aers
    
    sudo chattr +i /rhs/NW1/sapmnt
    sudo chattr +i /rhs/NW1/trans
    sudo chattr +i /rhs/NW1/sys
    sudo chattr +i /rhs/NW1/ascs
    sudo chattr +i /rhs/NW1/aers
    
    echo -e "/dev/rhgs-NW1/sapmnt\t/rhs/NW1/sapmnt\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW1/trans\t/rhs/NW1/trans\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW1/sys\t/rhs/NW1/sys\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW1/ascs\t/rhs/NW1/ascs\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW1/aers\t/rhs/NW1/aers\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    sudo mount -a
    

    NW2 には以下のコマンドを使用しますUse these commands for NW2

    sudo pvcreate --dataalignment 1024K /dev/disk/azure/scsi1/lun1
    sudo pvscan
    sudo vgcreate --physicalextentsize 256K rhgs-NW2 /dev/disk/azure/scsi1/lun1
    sudo vgscan
    sudo lvcreate -l 50%FREE -n rhgs-NW2/sapmnt
    sudo lvcreate -l 20%FREE -n rhgs-NW2/trans
    sudo lvcreate -l 10%FREE -n rhgs-NW2/sys
    sudo lvcreate -l 50%FREE -n rhgs-NW2/ascs
    sudo lvcreate -l 100%FREE -n rhgs-NW2/aers
    
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW2/sapmnt
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW2/trans
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW2/sys
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW2/ascs
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW2/aers
    
    sudo mkdir -p /rhs/NW2/sapmnt
    sudo mkdir -p /rhs/NW2/trans
    sudo mkdir -p /rhs/NW2/sys
    sudo mkdir -p /rhs/NW2/ascs
    sudo mkdir -p /rhs/NW2/aers
    
    sudo chattr +i /rhs/NW2/sapmnt
    sudo chattr +i /rhs/NW2/trans
    sudo chattr +i /rhs/NW2/sys
    sudo chattr +i /rhs/NW2/ascs
    sudo chattr +i /rhs/NW2/aers
    sudo lvscan
    
    echo -e "/dev/rhgs-NW2/sapmnt\t/rhs/NW2/sapmnt\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW2/trans\t/rhs/NW2/trans\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW2/sys\t/rhs/NW2/sys\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW2/ascs\t/rhs/NW2/ascs\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW2/aers\t/rhs/NW2/aers\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    sudo mount -a
    
  11. [1] 分散ボリュームを作成します[1] Create the distributed volume

    次のコマンドを使用して NW1 用の GlusterFS ボリュームを作成してそれを開始します。Use the following commands to create the GlusterFS volume for NW1 and start it.

    sudo gluster vol create NW1-sapmnt replica 3 glust-0:/rhs/NW1/sapmnt glust-1:/rhs/NW1/sapmnt glust-2:/rhs/NW1/sapmnt force
    sudo gluster vol create NW1-trans replica 3 glust-0:/rhs/NW1/trans glust-1:/rhs/NW1/trans glust-2:/rhs/NW1/trans force
    sudo gluster vol create NW1-sys replica 3 glust-0:/rhs/NW1/sys glust-1:/rhs/NW1/sys glust-2:/rhs/NW1/sys force
    sudo gluster vol create NW1-ascs replica 3 glust-0:/rhs/NW1/ascs glust-1:/rhs/NW1/ascs glust-2:/rhs/NW1/ascs force
    sudo gluster vol create NW1-aers replica 3 glust-0:/rhs/NW1/aers glust-1:/rhs/NW1/aers glust-2:/rhs/NW1/aers force
    
    sudo gluster volume start NW1-sapmnt
    sudo gluster volume start NW1-trans
    sudo gluster volume start NW1-sys
    sudo gluster volume start NW1-ascs
    sudo gluster volume start NW1-aers
    

    次のコマンドを使用して NW2 用の GlusterFS ボリュームを作成してそれを開始します。Use the following commands to create the GlusterFS volume for NW2 and start it.

    sudo gluster vol create NW2-sapmnt replica 3 glust-0:/rhs/NW2/sapmnt glust-1:/rhs/NW2/sapmnt glust-2:/rhs/NW2/sapmnt force
    sudo gluster vol create NW2-trans replica 3 glust-0:/rhs/NW2/trans glust-1:/rhs/NW2/trans glust-2:/rhs/NW2/trans force
    sudo gluster vol create NW2-sys replica 3 glust-0:/rhs/NW2/sys glust-1:/rhs/NW2/sys glust-2:/rhs/NW2/sys force
    sudo gluster vol create NW2-ascs replica 3 glust-0:/rhs/NW2/ascs glust-1:/rhs/NW2/ascs glust-2:/rhs/NW2/ascs force
    sudo gluster vol create NW2-aers replica 3 glust-0:/rhs/NW2/aers glust-1:/rhs/NW2/aers glust-2:/rhs/NW2/aers force
    
    sudo gluster volume start NW2-sapmnt
    sudo gluster volume start NW2-trans
    sudo gluster volume start NW2-sys
    sudo gluster volume start NW2-ascs
    sudo gluster volume start NW2-aers
    

次の手順Next steps