ディスクの障害がOracle Big Data Applianceにとって致命的になることはありません。ユーザー・データは何も失われません。HDFSまたはOracle NoSQL Databaseに格納されているデータは、自動的にレプリケートされます。
この章は次の項で構成されています:
関連項目:
My Oracle SupportドキュメントID 1581331.1
次に、サーバー・ディスク・ドライブを交換するための基本手順を示します。
関連項目:
次の場所にあるOracle Server X5-2Lサービス・マニュアルのストレージ・ドライブおよびリア・ドライブの修理に関する項
http://docs.oracle.com/cd/E41033_01/html/E48325/cnpsm.z40000091011460.html#scrolltoc
次の場所にあるSun Fire X4270 M2 Serverサービス・マニュアルのストレージ・ドライブおよびブート・ドライブの修理に関する項を参照してください。
http://docs.oracle.com/cd/E19245-01/E21671/hotswap.html#50503714_61628
Oracle Big Data Applianceサーバーには、ホスト・バス・アダプタ(HBA)によって制御されるディスク・エンクロージャ・ケージが含まれます。エンクロージャには、スロット番号0から11で識別される12のディスク・ドライブがあります。ドライブは、表12-1に示すような固有の機能専用にすることができます。
Oracle Big Data Applianceでは、ディスクのスロット番号を識別するために、/dev/disk/by_hba_slot
で定義されるシンボリック・リンクを使用します。リンクの形式は、snpmであり、nはスロット番号、mはパーティション番号です。たとえば、/dev/disk/by_hba_slot/s0p1
は初期状態で/dev/sda1
に対応します。
ディスクがホット・スワップされる場合、オペレーティング・システムでは、カーネル・デバイス名を再利用できません。かわりに、新しいデバイス名が割り当てられます。たとえば、/dev/sda
をホット・スワップすると、/dev/disk/by-hba-slot/s0
に対応するディスクは、/dev/sda
のかわりに/dev/sdn
にリンクされます。したがって、/dev/disk/by-hba-slot/
のリンクは、デバイスの追加または削除時に自動的に更新されます。
コマンド出力では、デバイス名がシンボリック・リンク名ではなくカーネル・デバイス名でリストされます。つまり、/dev/disk/by-hba-slot/s0
は、コマンド出力では/dev/sda
として識別される場合があります。
表12-1に、RAID論理ドライブとオペレーティング・システム識別子との間の通常の初期マッピングを示します。ただし、システムに存在するマッピング(ここにリストしたものとは異なる可能性があります)を使用する必要があります。表には、Oracle Big Data Applianceサーバーの各ドライブの専用機能も示します。障害ドライブのあるサーバーは、CDHクラスタ(HDFS)またはOracle NoSQL Databaseクラスタの一部です。
表12-1 ディスク・ドライブ識別子
物理スロットに対するシンボリック・リンク | 一般的な初期カーネル・デバイス名 | 固有の機能 |
---|---|---|
/dev/disk/by-hba-slot/s0 |
/dev/sda |
オペレーティング・システム |
/dev/disk/by-hba-slot/s1 |
/dev/sdb |
オペレーティング・システム |
/dev/disk/by-hba-slot/s2 |
/dev/sdc |
HDFSまたはOracle NoSQL Database |
/dev/disk/by-hba-slot/s3 |
/dev/sdd |
HDFSまたはOracle NoSQL Database |
/dev/disk/by-hba-slot/s4 |
/dev/sde |
HDFSまたはOracle NoSQL Database |
/dev/disk/by-hba-slot/s5 |
/dev/sdf |
HDFSまたはOracle NoSQL Database |
/dev/disk/by-hba-slot/s6 |
/dev/sdg |
HDFSまたはOracle NoSQL Database |
/dev/disk/by-hba-slot/s7 |
/dev/sdh |
HDFSまたはOracle NoSQL Database |
/dev/disk/by-hba-slot/s8 |
/dev/sdi |
HDFSまたはOracle NoSQL Database |
/dev/disk/by-hba-slot/s9 |
/dev/sdj |
HDFSまたはOracle NoSQL Database |
/dev/disk/by-hba-slot/s10 |
/dev/sdk |
HDFSまたはOracle NoSQL Database |
/dev/disk/by-hba-slot/s11 |
/dev/sdl |
HDFSまたはOracle NoSQL Database |
表12-2に、HDFSパーティションとマウント・ポイントとの間のマッピングを示します。
表12-2 マウント・ポイント
物理スロットおよびパーティションに対するシンボリック・リンク | HDFSパーティション | マウント・ポイント |
---|---|---|
/dev/disk/by-hba-slot/s0p4 |
/dev/sda4 |
/u01 |
/dev/disk/by-hba-slot/s1p4 |
/dev/sdb4 |
/u02 |
/dev/disk/by-hba-slot/s2p1 |
/dev/sdc1 |
/u03 |
/dev/disk/by-hba-slot/s3p1 |
/dev/sdd1 |
/u04 |
/dev/disk/by-hba-slot/s4p1 |
/dev/sde1 |
/u05 |
/dev/disk/by-hba-slot/s5p1 |
/dev/sdf1 |
/u06 |
/dev/disk/by-hba-slot/s6p1 |
/dev/sdg1 |
/u07 |
/dev/disk/by-hba-slot/s7p1 |
/dev/sdh1 |
/u08 |
/dev/disk/by-hba-slot/s8p1 |
/dev/sdi1 |
/u09 |
/dev/disk/by-hba-slot/s9p1 |
/dev/sdj1 |
/u10 |
/dev/disk/by-hba-slot/s10p1 |
/dev/sdk1 |
/u11 |
/dev/disk/by-hba-slot/s11p1 |
/dev/sdl1 |
/u12 |
次のMegaCli64
コマンドを使用して、仮想ドライブ番号と物理スロット番号のマッピングを確認します。「ディスク・ドライブの交換」を参照してください。
# MegaCli64 LdPdInfo a0 | more
予測障害状態にあるHDFSディスクまたはオペレーティング・システム・ディスクを交換するには、最初にHDFSパーティションをディスマウントする必要があります。オペレーティング・システム・ディスクを交換する前には、スワッピングを無効にする必要もあります。
注意:
HDFSパーティションのみをディスマウントしてください。オペレーティング・システム・ディスクの場合、オペレーティング・システム・パーティションをディスマウントしないでください。HDFSには、オペレーティング・システム・ディスクのパーティション4 (sda4またはsdb4)のみを使用します。
HDFSパーティションをディスマウントするには、次の手順を実行します。
障害ドライブのあるサーバーにログインします。
障害ドライブがオペレーティング・システムをサポートしている場合、スワッピングを無効にします。
# bdaswapoff
アクティブなスワッピングが存在するディスクを削除すると、カーネルがクラッシュします。
マウントされているHDFSパーティションをリストします。
# mount -l
/dev/md2 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/md0 on /boot type ext4 (rw)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda4 on /u01 type ext4 (rw,nodev,noatime) [/u01]
/dev/sdb4 on /u02 type ext4 (rw,nodev,noatime) [/u02]
/dev/sdc1 on /u03 type ext4 (rw,nodev,noatime) [/u03]
/dev/sdd1 on /u04 type ext4 (rw,nodev,noatime) [/u04]
.
.
.
障害ディスクでマウントされているパーティションのリストを確認します。ディスクのパーティションがリストされていない場合、「ディスク・ドライブの交換」に進みます。そうではない場合、次の手順に進みます。
注意:
オペレーティング・システム・ディスクの場合、パーティション4 (sda4またはsdb4)を見つけます。オペレーティング・システム・パーティションはディスマウントしないでください。
障害ディスクのHDFSマウント・ポイントをディスマウントします。
# umount mountpoint
たとえば、umount /u11
によって、パーティション/dev/sdk1
のマウント・ポイントが削除されます。
umount
コマンドに成功した場合、「ディスク・ドライブの交換」に進みます。umount
コマンドがデバイス・ビジー・メッセージで失敗した場合、パーティションはまだ使用中です。次の手順に進みます。
Cloudera Managerのブラウザ・ウィンドウを開きます。次に例を示します。
http://bda1node03.example.com:7180
Cloudera Managerで次の手順を実行します。
admin
としてログインします。
「Services」ページで、「hdfs」をクリックします。
「Instances」サブタブをクリックします。
「Host」列で、障害ディスクのあるサーバーを特定します。次に、「Name」列のサービス(datanodeなど)をクリックしてそのページを開きます。
「Configuration」サブタブをクリックします。
「Directory」フィールドからマウント・ポイントを削除します。
「Save Changes」をクリックします。
「Actions」リストから、「Restart this DataNode」を選択します。
注意:
Cloudera Managerでマウント・ポイントを削除した場合、他のすべての構成手順が終了した後に、Cloudera Managerでマウント・ポイントをリストアする必要があります。
障害ドライブのあるサーバーのセッションに戻ります。
umount
コマンドを再発行します。
# umount mountpoint
ディスクをオフラインにします。
# MegaCli64 PDoffline "physdrv[enclosure:slot]" a0
たとえば、"physdrv[20:10]"
はディスクs11を示します。これは、エンクロージャ20のスロット10にあります。
コントローラ構成表からディスクを削除します。
MegaCli64 CfgLDDel Lslot a0
たとえば、L10はスロット10を示します。
「ディスク・ドライブの交換」の手順を完了します。
サーバーは、ディスク交換手順の最中に、ユーザーがreboot
コマンドを発行したため、またはMegaCli64コマンドでエラーが発生したために再起動することがあります。ほとんどの場合、サーバーは正常に再起動し、作業を継続できます。ただし、それ以外の場合、エラーが発生するためにSSHを使用して再接続できなくなります。この場合、Oracle ILOMを使用して再起動を完了する必要があります。
Oracle ILOMを使用してサーバーを再起動するには、次の手順を実行します。
ブラウザで、Oracle ILOMを使用してサーバーに対する接続を開きます。次に例を示します。
http://bda1node12-c.example.com
注意:
ブラウザには、JDKプラグインがインストールされている必要があります。ログイン・ページにJavaのコーヒー・カップが表示されない場合、作業を続行する前にプラグインをインストールする必要があります。
Oracle ILOM資格証明を使用してログインします。
「Remote Control」タブを選択します。
「Launch Remote Console」ボタンをクリックします。
[Ctrl]を押しながら[D]を押し、再起動を続行します。
再起動に失敗した場合、プロンプトでサーバーのroot
パスワードを入力し、問題の修正を試みます。
サーバーが正常に再起動したら、「Redirection」メニューを開いて「Quit」を選択し、コンソール・ウィンドウを閉じます。
障害が発生または障害状態にあるディスク・ドライブを交換するには、次の手順を実行します。
障害ディスクを交換する前に、「障害ディスクを交換するための前提条件」を参照してください。
障害ディスク・ドライブを交換します。
「Oracle Big Data Applianceサーバーの部品」を参照してください。
障害ディスクを交換するためにサーバーの電源を切断した場合、電源を投入します。
KVMまたはラップトップとのSSL接続を使用して、root
としてサーバーに接続します。
ファイルに物理ドライブの情報を保存します。
# MegaCli64 pdlist a0 > pdinfo.tmp
注意: このコマンドによって、出力がファイルにリダイレクトされるため、テキスト・エディタを使用して複数の検索を実行できます。必要に応じて、more
またはgrep
コマンドを通じて出力をパイプ処理できます。
ユーティリティによって、スロットごとに次の情報が返されます。次の例は、Firmware StateがUnconfigured(good), Spun Up
であることを示しています。
Enclosure Device ID: 20 Slot Number: 8 Drive's postion: DiskGroup: 8, Span: 0, Arm: 0 Enclosure position: 0 Device Id: 11 WWN: 5000C5003487075C Sequence Number: 2 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Last Predictive Failure Event Seq Number: 0 PD Type: SAS Raw Size: 1.819 TB [0xe8e088b0 Sectors] Non Coerced Size: 1.818 TB [0xe8d088b0 Sectors] Coerced Size: 1.817 TB [0xe8b6d000 Sectors] Firmware state: Unconfigured(good), Spun Up Is Commissioned Spare : NO Device Firmware Level: 061A Shield Counter: 0 Successful diagnostics completion on : N/A SAS Address(0): 0x5000c5003487075d SAS Address(1): 0x0 Connected Port Number: 0(path0) Inquiry Data: SEAGATE ST32000SSSUN2.0T061A1126L6M3WX FDE Enable: Disable Secured: Unsecured Locked: Unlocked Needs EKM Attention: No Foreign State: None Device Speed: 6.0Gb/s Link Speed: 6.0Gb/s Media Type: Hard Disk Device . . .
手順5で作成したファイルをテキスト・エディタで開き、次の項目を検索します。
Foreign StateがForeignのディスクでは、そのステータスを消去します。
# MegaCli64 CfgForeign clear a0
外部ディスクは、コントローラが以前認識していたディスクです(再挿入されたディスクなど)。
Firmware StateがUnconfigured (Bad)のディスクでは、次の手順を実行します。
エンクロージャ・デバイスのID番号とスロット番号を書き留めます。
次の書式でコマンドを入力します。
# MegaCli64 pdmakegood physdrv[enclosure:slot] a0
たとえば、[20:10]では、スロット10のエンクロージャ20によって識別されるディスクが修復されます。
もう一度Foreign Stateの現在のステータスを確認します。
# MegaCli64 pdlist a0 | grep foreign
Foreign StateがまだForeignの場合は、clear
コマンドを繰り返します。
# MegaCli64 CfgForeign clear a0
Firmware StateがUnconfigured (Good)のディスクでは、次のコマンドを使用します。複数のディスクが未構成の場合、最小のスロット番号から最大のスロット番号へと向かう順序でそれらを構成します。
# MegaCli64 CfgLdAdd r0[enclosure:slot] a0 Adapter 0: Created VD 1 Adapter 0: Configured the Adapter!! Exit Code: 0x00
たとえば、[20:5]では、スロット5のエンクロージャ20によって識別されるディスクが修復されます。
手順9のCfgLdAdd
コマンドがキャッシュされたデータにより失敗した場合は、キャッシュを消去します。
# MegaCli64 discardpreservedcache l1 a0
ディスクがオペレーティング・システムによって認識されることを確認します。
# lsscsi
ディスクは、その元のデバイス名(/dev/sdc
など)で表示されるか、新しいデバイス名(/dev/sdn
など)で表示されます。オペレーティング・システムでディスクが認識されない場合、そのディスクはlsscsi
コマンドによって生成されるリストに含まれません。
lssci
出力が正しい順序で表示されない場合もありますが、構成は続行できます。同じ物理ディスクから論理ディスクへのマッピングが必要な場合には、カーネルに対して同じディスクからデバイスへのマッピングは不要です。ディスク構成は、/dev/disks/by-hba-slot
のデバイス名に基づいて行われます。
次の出力例は、新しいデバイス名の2つのディスクを示しています(スロット5の/dev/sdn
およびスロット10の/dev/sdo
)。
[0:0:20:0] enclosu ORACLE CONCORD14 0960 - [0:2:0:0] disk LSI MR9261-8i 2.12 /dev/sda [0:2:1:0] disk LSI MR9261-8i 2.12 /dev/sdb [0:2:2:0] disk LSI MR9261-8i 2.12 /dev/sdc [0:2:3:0] disk LSI MR9261-8i 2.12 /dev/sdd [0:2:4:0] disk LSI MR9261-8i 2.12 /dev/sde [0:2:5:0] disk LSI MR9261-8i 2.12 /dev/sdn [0:2:6:0] disk LSI MR9261-8i 2.12 /dev/sdg [0:2:7:0] disk LSI MR9261-8i 2.12 /dev/sdh [0:2:8:0] disk LSI MR9261-8i 2.12 /dev/sdi [0:2:9:0] disk LSI MR9261-8i 2.12 /dev/sdj [0:2:10:0] disk LSI MR9261-8i 2.12 /dev/sdo [0:2:11:0] disk LSI MR9261-8i 2.12 /dev/sdl [7:0:0:0] disk ORACLE UNIGEN-UFD PMAP /dev/sdm [
サーバーのハードウェア・プロファイルを確認し、エラーがあれば修正します。
# bdacheckhw
サーバーのソフトウェア・プロファイルを確認し、エラーがあれば修正します。
# bdachecksw
「Wrong mounted partitions」エラーが表示され、デバイスがリストにない場合は、エラーを無視して続行できます。ただし、「Duplicate mount points」エラーが表示されるか、またはスロット番号が切り替わった場合は、「マウントされているパーティションのエラーの修正」を参照してください。
ドライブを適切に構成できるように、その機能を識別します。「ディスク・ドライブの機能の識別」を参照してください。
bdachecksw
ユーティリティで見つかる問題は通常、マウントされているパーティションに関係しています。
古いマウント・ポイントがmount
コマンドの出力として表示される場合があるため、たとえば/u03など、同じマウント・ポイントが2回表示されることもあります。
重複しているマウント・ポイントを修正するには、次の手順を実行します。
umount
コマンドを2回使用して、両方のマウント・ポイントをディスマウントします。この例では、重複している2つの/u03をディスマウントしています。
# umount /u03 # umount /u03
マウント・ポイントを再マウントします。この例では、/u03を再マウントしています。
# mount /u03
ディスクが誤ったスロット(つまり、仮想ドライブ番号)にある場合には、2つのドライブを切り替えることができます。
スロットを切り替えるには、次の手順を実行します。
両方のドライブのマッピングを削除します。この例では、スロット4および10からドライブを削除しています。
# MegaCli64 cfgLdDel L4 a0 # MegaCli64 cfgLdDel L10 a0
表示しようとする順序でドライブを追加します。最初のコマンドで、使用可能な最初のスロット番号が取得されます。
# MegaCli64 cfgLdAdd [20:4] a0 # MegaCli64 cfgLdAdd [20:5] a0
スロット番号が正しい場合であってもマウント・エラーが続く場合には、サーバーを再起動してください。
障害ディスクのあるサーバーは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
前の手順で障害ディスクがオペレーティング・システム・ディスクであることがわかった場合、「オペレーティング・システム・ディスクの構成」に進みます。
最初の2つのディスクによって、Linuxオペレーティング・システムがサポートされます。これらのディスクには、ミラー化されたオペレーティング・システムのコピー、スワップ・パーティション、ミラー化されたブート・パーティションおよびHDFSデータ・パーティションが格納されます。
オペレーティング・システム・ディスクを構成するには、稼働を続けているディスクからパーティション表をコピーし、HDFSパーティション(ext4ファイル・システム)を作成して、オペレーティング・システムのソフトウェアRAIDパーティションとブート・パーティションを追加する必要があります。
パーティション化の手順は、Oracle Linuxバージョン5と6では若干異なります。各システムに対応する適切な手順を実行してください。
注意:
次のコマンドの/dev/disk/by-hba-slot/s
n
は、適切なシンボリック・リンク(/dev/disk/by-hba-slot/s0
または/dev/disk/by-hba-slot/s1
)に置き換えてください。
ディスクをパーティション化した後、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パーティションのフォーマット」の手順を完了します。
オペレーティング・システム・ディスクのパーティション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
「スワップ・パーティションのリストア」の手順を完了します。
スワップ・パーティションをリストアするには、次の手順を実行します。
スワップ・ラベルを設定します。
# 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 5で、udevtrigger
を実行します。
Linux 6で、udevadm trigger
を実行します。
その後、手順3を繰り返します。lsscsi
コマンドも、ディスクの正しい順序をレポートする必要があります。
「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
論理ドライブL0
(L +ゼロ)がHBAのブート・ドライブとして設定されていることを確認します。
# MegaCli64 -AdpBootDrive -get a0
Adapter 0: Boot Virtual Drive - #0 (target id - 0).
前のコマンドでL0
(仮想ドライブ0、ターゲット0)がレポートされなかった場合は、次のように入力します。
# MegaCli64 AdpBootDrive set L0 a0
自動選択ブート・ドライブ機能が有効であることを確認します。
# MegaCli64 adpBIOS EnblAutoSelectBootLd a0
Auto select Boot is already Enabled on Adapter 0.
構成を確認します。「ディスク構成の確認」を参照してください。
オペレーティング・システムで使用されていないすべてのディスクで、次の手順を実行します。「ディスク・ドライブの機能の識別」を参照してください。
ディスクを構成するには、それをパーティション化してフォーマットする必要があります。
注意:
次のコマンドの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
存在しないデバイスに適切なパーティション・ラベルを再設定します。表12-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 5で、udevtrigger
を実行します。
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」を選択します。
構成を確認します。「ディスク構成の確認」を参照してください。
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
ファイルが見つかる場合には、前の手順を繰り返します。