3.7. 付録: ISO からのカスタムディスクイメージの作成
Microsoft Azure 内のインスタンスは、ディスクイメージから作成されます。Gluster Storage には、デフォルトの Microsoft Azure が提供するイメージではなく、カスタムイメージが必要です。カスタム仮想マシンイメージの構築は通常 Hyper-V で実行されますが、Microsoft Azure のカスタムイメージは、ネイティブ Linux ツールを使用してビルドすることもできます。
カスタムイメージを設定するための全体的なプロセスには約 30 分かかります。
- Gluster Storage の最新 ISO を https://access.redhat.com/downloads/content/186/ver=3.1/rhel---7/3.1/x86_64/product-software からダウンロードします。
virt-managerを使用して、2 つのコアである 4 GB RAM、2 つのコア 20 GB の virtio HDD と 1 つの NIC を持つ qcow2 イメージを作成します。- ISO イメージからインスタンスを起動し、Gluster Storage のインストールを完了します。Windows Azure エージェントはスワップ領域用に一時ディスクを設定するため、スワップ領域を割り当てないでください。
- インスタンスを再起動してログインします。
- 汎用ホスト名を設定します。Red Hat Enterprise Linux 7 の場合:
hostnamectl set-hostname localhost.localdomain
# hostnamectl set-hostname localhost.localdomainCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 6 の場合:vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=localhost.localdomain
# vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=localhost.localdomainCopy to Clipboard Copied! Toggle word wrap Toggle overflow - DHCP が
/etc/sysconfig/network-scripts/ifcfg-eth0 に設定されていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Microsoft Azure および Hyper-V との競合を回避するために、udev ルールを更新します。
rm -f /etc/udev/rules.d/70-persistent-net.rules rm -f /lib/udev/rules.d/75-persistent-net-generator.rules
# rm -f /etc/udev/rules.d/70-persistent-net.rules # rm -f /lib/udev/rules.d/75-persistent-net-generator.rulesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat Enterprise Linux 7 では、Gluster Storage にデフォルトのファイアウォールルールを適用します。これらのルールセットは、ノード間の通信、GlusterFS クライアント、および NFS に使用されます。
firewall-cmd --zone=public --add-service=glusterfs --permanent firewall-cmd --zone=public --add-service=nfs --add-service=rpc-bind --permanent
# firewall-cmd --zone=public --add-service=glusterfs --permanent # firewall-cmd --zone=public --add-service=nfs --add-service=rpc-bind --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 仮想マシンを登録します。
subscription-manager register --auto-attach subscription-manager repos --disable=*
# subscription-manager register --auto-attach # subscription-manager repos --disable=*Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Extras リポジトリーおよび Gluster Storage リポジトリーを有効にします。これは rhel-6- または rhel-7- のいずれかになります。
subscription-manager repos --enable rhel-7-server-rpms --enable rhel-7-server-extras-rpms --enable rh-gluster-3-for-rhel-7-server-rpms
# subscription-manager repos --enable rhel-7-server-rpms --enable rhel-7-server-extras-rpms --enable rh-gluster-3-for-rhel-7-server-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - システムを更新して、Microsoft Azure Linux エージェントをインストールします。
yum update –y yum –y install WALinuxAgent
# yum update –y # yum –y install WALinuxAgentCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Gluster Storage のインストール時に定義されたスワップ領域を無効にします。これは Red Hat Enterprise Linux 7 で必要になります。Microsoft Azure は、ランタイム時に一時ストレージを割り当てます。このストレージは swap に使用されるため、スワップ領域を明示的に定義する必要はありません。
swapoff -v /dev/rhgs/swap sed -i '/.* swap/d' /etc/fstab
# swapoff -v /dev/rhgs/swap # sed -i '/.* swap/d' /etc/fstabCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 6 では、インストーラーはディスク設定を変更できるため、スワップが定義されていません。ただし、論理ボリュームを作成している場合は、RHEL 7 で設定を削除します。 - Red Hat Enterprise Linux 7 のみAzure で実行されている Linux 仮想マシンには、initramfs イメージ内に hv_storvsc ドライバーおよび hv_vmbus ドライバーが必要です。Red Hat Enterprise Linux 6 インストーラーにはこれらのドライバーが自動的に含まれていますが、Red Hat Enterprise Linux 7 では、インストーラーは Hyper-V デバイスがインストール時に検出される場合にのみこれらのドライバーを追加します。virt-manager を使用して仮想マシンイメージをビルドする場合は、これらの Hyper-V ドライバーを手動で追加します。
- 以下の内容を
/etc/dracut.confに追加します。 initramfsを再生成します。dracut -f -v
# dracut -f -vCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- カーネルブート設定を更新します。Red Hat Enterprise Linux 7 の場合:
- /etc/default/grub に GRUB_CMDLINE_LINUX 変数を設定します。
``rd.lvm.lv=rhgs/root console=ttyS0 earlyprintk=ttyS0 rootdelay=300
``rd.lvm.lv=rhgs/root console=ttyS0 earlyprintk=ttyS0 rootdelay=300Copy to Clipboard Copied! Toggle word wrap Toggle overflow - grub2 設定を更新します。
grub2-mkconfig -o /boot/grub2/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow - rhqb、quiet、または crashkernel=auto パラメーターを削除します。
Red Hat Enterprise Linux 6 の場合:- /boot/grub/menu.lst でカーネルブート行を更新します。
console=ttyS0 earlyprintk=ttyS0 rootdelay=300 numa=off
console=ttyS0 earlyprintk=ttyS0 rootdelay=300 numa=offCopy to Clipboard Copied! Toggle word wrap Toggle overflow - rhqb、quiet、または crashkernel=auto パラメーターを削除します。
- 起動時に Windows Azure エージェントを起動できるようにします。
- Red Hat Enterprise Linux 7 の場合:
systemctl enable waagent
# systemctl enable waagentCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat Enterprise Linux 6 の場合:
chkconfig waagent on
# chkconfig waagent onCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- Red Hat Subscription Manager を使用して仮想マシンの登録を解除します。
subscription-manager unregister
# subscription-manager unregisterCopy to Clipboard Copied! Toggle word wrap Toggle overflow - インスタンスのプロビジョニングを解除してローカル設定を削除します。これにより、インスタンスは Microsoft Azure 内のディスクイメージとして使用することができます。
yum clean all waagent -force -deprovision export HISTSIZE=0 poweroff
# yum clean all # waagent -force -deprovision # export HISTSIZE=0 # poweroffCopy to Clipboard Copied! Toggle word wrap Toggle overflow - インスタンスの XML をダンプし、作成した仮想ディスクのファイル名を見つけ、Microsoft Azure と互換性のある VHD ファイルに変換します。この例では、インスタンスは
qcow2ディスク形式を使用して最初に作成されました。virsh dumpxml image-name qemu-img convert -f qcow2 -O vpc -o subformat=fixed -O vpc rhgs313.qcow2 rhgs313.vhd
# virsh dumpxml image-name # qemu-img convert -f qcow2 -O vpc -o subformat=fixed -O vpc rhgs313.qcow2 rhgs313.vhdCopy to Clipboard Copied! Toggle word wrap Toggle overflow