G 手動でディスク構成する手順
ディスク・エラーを解決したり、Oracle Big Data Applianceのデータ・ディスクまたはオペレーティング・システム・ディスクを構成または再構成したりするには、bdaconfiguredisk
ユーティリティを実行することをお薦めします。このユーティリティによって処理が自動化されます。これらの手動ステップは必須ではありませんが、必要な場合に参照できるようにフォールバックとして含められています。
G.1 ディスク・ドライブの機能の識別
障害ディスクのあるサーバーはHDFSまたはOracle NoSQL Databaseをサポートするように構成され、ほとんどのディスクはその目的のみに使用されます。ただし、2つのディスクはオペレーティング・システム専用です。新しいディスクを構成する前に、障害ディスクがどのように構成されたかを確認します。
Oracle Big Data Applianceは、最初の2つのディスク上にオペレーティング・システムが構成されます。
障害ディスクでオペレーティング・システムがサポートされていたことを確認するには、次の手順を実行します。
-
交換ディスクが
/dev/sda
または/dev/sdb
(オペレーティング・システム・ディスク)に対応しているかどうかを確認します。# lsscsi
「ディスク・ドライブの交換」のステップ11での出力を参照してください。
-
/dev/sda
および/dev/sdb
がオペレーティング・システムのミラー化パーティション・ディスクであることを確認します。# mdadm -Q –-detail /dev/md2 /dev/md2: Version : 0.90 Creation Time : Mon Jul 22 22:56:19 2013 Raid Level : raid1 . . . Number Major Minor RaidDevice State 0 8 2 0 active sync /dev/sda2 1 8 18 1 active sync /dev/sdb2
-
前のステップで障害ディスクがオペレーティング・システム・ディスクであることがわかった場合、「オペレーティング・システム・ディスクの構成」に進みます。
G.2 オペレーティング・システム・ディスクの構成
最初の2つのディスクによって、Linuxオペレーティング・システムがサポートされます。これらのディスクには、ミラー化されたオペレーティング・システムのコピー、スワップ・パーティション、ミラー化されたブート・パーティションおよびHDFSデータ・パーティションが格納されます。
オペレーティング・システム・ディスクを構成するには、稼働を続けているディスクからパーティション表をコピーし、HDFSパーティション(ext4ファイル・システム)を作成して、オペレーティング・システムのソフトウェアRAIDパーティションとブート・パーティションを追加する必要があります。
G.2.2 RAIDアレイの修理
ディスクをパーティション化した後、2つの論理RAIDアレイを修理できます。
-
/dev/md0
には、/dev/disk/by-hba-slot/s0p1
および/dev/disk/by-hba-slot/s1p1
が含まれます。/boot
としてマウントされます。 -
/dev/md2
には、/dev/disk/by-hba-slot/s0p2
および/dev/disk/by-hba-slot/s1p2
が含まれます。/
(root)としてマウントされます。
注意:
システムが停止する操作になるため、/dev/md
デバイスはディスマウントしないでください。
RAIDアレイを修理するには、次の手順を実行します。
-
RAIDアレイからパーティションを削除します。
# mdadm /dev/md0 -r detached # mdadm /dev/md2 -r detached
-
RAIDアレイが縮退していることを確認します。
# mdadm -Q –-detail /dev/md0 # mdadm -Q –-detail /dev/md2
-
各アレイの縮退ファイルが1に設定されていることを確認します。
# cat /sys/block/md0/md/degraded 1 # cat /sys/block/md2/md/degraded 1
-
RAIDアレイにパーティションをリストアします。
# mdadm –-add /dev/md0 /dev/disk/by-hba-slot/snp1 # mdadm –-add /dev/md2 /dev/disk/by-hba-slot/snp2
-
/dev/md2
がリカバリ状態になり、アイドル状態でなくなるように、再同期が開始されていることを確認します。# cat /sys/block/md2/md/sync_action repair
-
再同期の進行を確認するには、
mdstat
ファイルを監視します。カウンタによって、完了した割合が示されます。# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb1[1] sda1[0] 204736 blocks [2/2] [UU] md2 : active raid1 sdb2[2] sda2[0] 174079936 blocks [2/1] [U_] [============>........] recovery = 61.6% (107273216/174079936) finish=18.4min speed=60200K/sec
次の出力は、同期が完了したことを示しています。
Personalities : [raid1] md0 : active raid1 sdb1[1] sda1[0] 204736 blocks [2/2] [UU] md2 : active raid1 sdb2[1] sda2[0] 174079936 blocks [2/2] [UU] unused devices: <none>
-
/etc/mdadm.confのコンテンツを表示します。
# cat /etc/mdadm.conf # mdadm.conf written out by anaconda DEVICE partitions MAILADDR root ARRAY /dev/md0 level=raid1 num-devices=2 UUID=df1bd885:c1f0f9c2:25d6... ARRAY /dev/md2 level=raid1 num-devices=2 UUID=6c949a1a:1d45b778:a6da...
-
次のコマンドの出力をステップ7の/etc/mdadm.confの内容と比較します。
# mdadm --examine --brief --scan --config=partitions
-
ファイル内のUUIDが
mdadm
コマンドの出力内のUUIDと異なる場合は、次の手順を実行します。-
テキスト・エディタで/etc/mdadm.confを開きます。
-
ARRAYからファイルの末尾までを選択し、選択した行を削除します。
-
ファイルの行を削除した部分に、コマンドの出力をコピーします。
-
変更したファイルを保存して終了します。
-
-
「オペレーティング・システム・ディスクのHDFSパーティションのフォーマット」のステップを完了します。
G.2.3 オペレーティング・システム・ディスクのHDFSパーティションのフォーマット
オペレーティング・システム・ディスクのパーティション4 (sda4)は、HDFSに使用されます。パーティションをフォーマットして適切なラベルを設定すると、ディスク領域が必要な場合にパーティションを使用するようにHDFSによってジョブの負荷がリバランスされます。
HDFSパーティションをフォーマットするには、次の手順を実行します。
-
ext4ファイル・システムとしてHDFSパーティションをフォーマットします。
# mkfs -t ext4 /dev/disk/by-hba-slot/snp4
ノート:
デバイスがマウントされているためにこのコマンドが失敗する場合、ここでドライブをディスマウントし、ステップ3を省略してください。ディスマウントの手順については、「障害ディスクを交換するための前提条件」を参照してください。
-
パーティション・ラベル(
s0p4
に対する/u01
など)が存在しないことを確認します。# ls -l /dev/disk/by-label
-
適切なHDFSパーティション(
/dev/sda
の場合は/u01
、/dev/sdb
の場合は/u02
)をディスマウントします。# umount /u0n
-
パーティション・ラベルを再設定します。
# tune2fs -c -1 -i 0 -m 0.2 -L /u0n /dev/disk/by-hba-slot/snp4
-
HDFSパーティションをマウントします。
# mount /u0n
-
「スワップ・パーティションのリストア」のステップを完了します。
G.2.4 スワップ・パーティションのリストア
スワップ・パーティションをリストアするには、次の手順を実行します。
-
スワップ・ラベルを設定します。
# mkswap -L SWAP-sdn3 /dev/disk/by-hba-slot/snp3 Setting up swapspace version 1, size = 12582907 kB LABEL=SWAP-sdn3, no uuid
-
スワップ・パーティションがリストアされたことを確認します。
# bdaswapon; bdaswapoff Filename Type Size Used Priority /dev/sda3 partition 12287992 0 1 /dev/sdb3 partition 12287992 0 1
-
交換したディスクがオペレーティング・システムによって認識されることを確認します。
$ ls -l /dev/disk/by-label total 0 lrwxrwxrwx 1 root root 10 Aug 3 01:22 BDAUSB -> ../../sdn1 lrwxrwxrwx 1 root root 10 Aug 3 01:22 BDAUSBBOOT -> ../../sdm1 lrwxrwxrwx 1 root root 10 Aug 3 01:22 SWAP-sda3 -> ../../sda3 lrwxrwxrwx 1 root root 10 Aug 3 01:22 SWAP-sdb3 -> ../../sdb3 lrwxrwxrwx 1 root root 10 Aug 3 01:22 u01 -> ../../sda4 lrwxrwxrwx 1 root root 10 Aug 3 01:22 u02 -> ../../sdb4 lrwxrwxrwx 1 root root 10 Aug 3 01:22 u03 -> ../../sdc1 lrwxrwxrwx 1 root root 10 Aug 3 01:22 u04 -> ../../sdd1 . . .
-
出力に交換したディスクがリストされない場合:
-
Linux 6で、
udevadm trigger
を実行します。
その後、ステップ3を繰り返します。
lsscsi
コマンドも、ディスクの正しい順序をレポートする必要があります。 -
-
「GRUBマスター・ブート・レコードおよびHBAブート順序のリストア」のステップを完了します。
G.2.5 GRUBマスター・ブート・レコードおよびHBAブート順序のリストア
スワップ・パーティションをリストアした後、Grand Unified Bootloader (GRUB)のマスター・ブート・レコードをリストアできます。
device.map
ファイルによって、オペレーティング・システム・デバイスにBIOSドライブがマップされます。次に、デバイス・マップ・ファイルの例を示します。
# this device map was generated by anaconda (hd0) /dev/sda (hd1) /dev/sdb
ただし、GRUBデバイス・マップはシンボリック・リンクをサポートしていないため、デバイス・マップ内のマッピングは/dev/disk/by-hba-slot
によって使用されているものと一致しない場合があります。この手順では、必要に応じてデバイス・マップを修正する方法について説明します。
GRUBのブート・レコードをリストアするには、次の手順を実行します。
-
ドライブがslot1で使用しているカーネル・デバイスを確認します。
# ls -ld /dev/disk/by-hba-slot/s1 lrwxrwxrwx 1 root root 9 Apr 22 12:54 /dev/disk/by-hba-slot/s1 -> ../../sdb
-
ステップ
1
に示すとおり、出力に/dev/sdbが表示されている場合は、次のステップ(GRUBのオープン)に進みます。別のデバイス(
/dev/sdn
など)が表示されている場合は、まずhd1
が正しいデバイスを指すように設定する必要があります。-
device.map
ファイルのコピーを作成します。# cd /boot/grub # cp device.map mydevice.map # ls -l *device* -rw-r--r-- 1 root root 85 Apr 22 14:50 device.map -rw-r--r-- 1 root root 85 Apr 24 09:24 mydevice.map
-
mydevice.map
を編集して、hd1
が新しいデバイスを指すようにします。この例では、ステップ1
でs1
が/deb/sdnを指していました。# more /boot/grub/mydevice.map # this device map was generated by bda install (hd0) /dev/sda (hd1) /dev/sdn
-
残りのステップでは、編集したデバイス・マップ(
mydevice.map
)を使用します。
-
-
ここに示すように
device.map
を使用するか、編集したmydevice.map
を使用して、GRUBをオープンします。# grub --device-map=/boot/grub/device.map GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ]
-
/dev/sda
の場合はhd0、/dev/sdb
の場合はhd1を入力して、ルート・デバイスを設定します。grub> root (hdn,0) root (hdn,0) Filesystem type is ext2fs, partition type 0x83
-
/dev/sda
の場合はhd0、/dev/sdb
の場合はhd1を入力して、GRUBをインストールします。grub> setup (hdn) setup (hdn) Checking if "/boot/grub/stage1" exists... no Checking if "/grub/stage1" exists... yes Checking if "/grub/stage2" exists... yes Checking if "/grub/e2fs_stage1_5" exists... yes Running "embed /grub/e2fs_stage1_5 (hdn)"... failed (this is not fatal) Running "embed /grub/e2fs_stage1_5 (hdn,0)"... failed (this is not fatal) Running "install /grub/stage1 (hdn) /grub/stage2 p /grub/grub.conf "... succeeded Done.
-
GRUBコマンドライン・インタフェースを終了します。
grub> quit
-
HBAのブート・ドライブが正しく設定されていることを確認します。
# MegaCli64 /c0 show bootdrive
BootDrive VD:0が設定されている場合、コマンド出力は次のようになります。
Controller = 0 Status = Success Description = None Controller Properties : ===================== ---------------- Ctrl_Prop Value ---------------- BootDrive VD:0 ----------------
BootDrive VD:0が設定されていない場合、コマンド出力に
「No Boot Drive」
と表示されます。Controller = 0 Status = Success Description = None Controller Properties : ===================== ---------------- Ctrl_Prop Value ---------------- BootDrive No Boot Drive ----------------
-
ブート・ドライブが設定されていないことが
MegaCli64 /c0 show bootdrive
によって報告された場合は、次のように設定します。# MegaCli64 /c0/v0 set bootdrive=on Controller = 0 Status = Success Description = None Detailed Status : =============== ----------------------------------------- VD Property Value Status ErrCd ErrMsg ----------------------------------------- 0 Boot Drive On Success 0 - ------------------------------------------
-
ブート・ドライブが設定されたことを確認します。
# MegaCli64 /c0 show bootdrive Controller = 0 Status = Success Description = None Controller Properties : ===================== ---------------- Ctrl_Prop Value ---------------- BootDrive VD:0 ----------------
-
自動選択ブート・ドライブ機能が有効であることを確認します。
# MegaCli64 adpBIOS EnblAutoSelectBootLd a0 Auto select Boot is already Enabled on Adapter 0.
-
構成を確認します。「ディスク構成の確認」を参照してください。
G.3 HDFSディスクまたはOracle NoSQL Databaseディスクの構成
オペレーティング・システムで使用されていないすべてのディスクで、次の手順を実行します。「ディスク・ドライブの機能の識別」を参照してください。
ディスクを構成するには、それをパーティション化してフォーマットする必要があります。
ノート:
次のコマンドのsnp1は、s4p1などの適切なシンボリック名に置き換えてください。
HDFSまたはOracle NoSQL Databaseで使用するためにディスクをフォーマットするには、次の手順を実行します。
-
「ディスク・ドライブの交換」のステップをまだ完了していない場合は完了します。
-
ドライブをパーティション化します。
# parted /dev/disk/by-hba-slot/sn -s mklabel gpt mkpart primary ext4 0% 100%
-
ext4ファイル・システムのパーティションをフォーマットします。
# mkfs -t ext4 /dev/disk/by-hba-slot/snp1
-
存在しないデバイスに適切なパーティション・ラベルを再設定します。表13-2を参照してください。
# tune2fs -c -1 -i 0 -m 0.2 -L /unn /dev/disk/by-hba-slot/snp1
たとえば、次のコマンドでは、
/u03
に対して/dev/disk/by-hba-slot/s2p1
というラベルを再設定します。# tune2fs -c -1 -i 0 -m 0.2 -L /u03 /dev/disk/by-hba-slot/s2p1 Setting maximal mount count to -1 Setting interval between checks to 0 seconds Setting reserved blocks percentage to 0.2% (976073 blocks)
-
交換したディスクがオペレーティング・システムによって認識されることを確認します。
$ ls -l /dev/disk/by-label total 0 lrwxrwxrwx 1 root root 10 Aug 3 01:22 BDAUSB -> ../../sdn1 lrwxrwxrwx 1 root root 10 Aug 3 01:22 BDAUSBBOOT -> ../../sdm1 lrwxrwxrwx 1 root root 10 Aug 3 01:22 SWAP-sda3 -> ../../sda3 lrwxrwxrwx 1 root root 10 Aug 3 01:22 SWAP-sdb3 -> ../../sdb3 lrwxrwxrwx 1 root root 10 Aug 3 01:22 u01 -> ../../sda4 lrwxrwxrwx 1 root root 10 Aug 3 01:22 u02 -> ../../sdb4 lrwxrwxrwx 1 root root 10 Aug 3 01:22 u03 -> ../../sdc1 lrwxrwxrwx 1 root root 10 Aug 3 01:22 u04 -> ../../sdd1 . . .
-
出力に交換したディスクがリストされない場合:
-
Linux 6で、
udevadm trigger
を実行します。
その後、ステップ5を繰り返します。
lsscsi
コマンドも、ディスクの正しい順序をレポートする必要があります。 -
-
適切なマウント・ポイントを入力してHDFSパーティションをマウントします。
# mount /unn
たとえば、
mount /u03
とします。 -
複数のドライブを構成する場合、前述のステップを繰り返します。
-
Cloudera ManagerでHDFSドライブのマウント・ポイントを削除していた場合、リストにリストアします。
-
Cloudera Managerのブラウザ・ウィンドウを開きます。次に例を示します。
http://bda1node03.example.com:7180
-
Cloudera Managerを開き、
admin
としてログインします。 -
「Services」ページで、「hdfs」をクリックします。
-
「Instances」サブタブをクリックします。
-
「Host」列で、交換ディスクのあるサーバーを特定します。次に、「Name」列のサービス(datanodeなど)をクリックしてそのページを開きます。
-
「Configuration」サブタブをクリックします。
-
「Directory」フィールドにマウント・ポイントがない場合、リストに追加します。
-
「Save Changes」をクリックします。
-
「Actions」リストから、「Restart」を選択します。
-
-
以前に「NodeManager Local Directories」からマウント・ポイントを削除した場合、Cloudera Managerを使用してそれもリストにリストアします。
-
「Services」ページで、「Yarn」をクリックします。
-
「Status Summary」で、「NodeManager」をクリックします。
-
リストから、障害ディスクのあるホスト上のNodeManagerをクリックして選択します。
-
「Configuration」サブタブをクリックします。
-
「NodeManager Local Directories」フィールドにマウント・ポイントがない場合、リストに追加します。
-
「Save Changes」をクリックします。
-
「Actions」リストから、「Restart」を選択します。
-
-
構成を確認します。「ディスク構成の確認」を参照してください。
G.4 ディスク構成の確認
Oracle Big Data Applianceソフトウェアをサーバーに再インストールする前に、新しいディスク・ドライブの構成が適切であることを確認する必要があります。
ディスク構成を確認するには、次の手順を実行します。
-
ソフトウェア構成を確認します。
# bdachecksw
-
エラーが存在する場合、必要に応じて構成ステップを再実行して問題を修正します。
-
/root
ディレクトリでBDA_REBOOT_SUCCEEDED
というファイルを確認します。 -
BDA_REBOOT_FAILED
という名前のファイルが見つかった場合には、そのファイルを読んで新しい問題を特定し、修正します。 -
次のスクリプトを使用して、
BDA_REBOOT_SUCCEEDED
ファイルを生成します。# /opt/oracle/bda/lib/bdastartup.sh
-
BDA_REBOOT_SUCCEEDED
が存在することを確認します。まだBDA_REBOOT_FAILED
ファイルが見つかる場合には、前のステップを繰り返します。