HOS 2.1 ネットワークカスタマイズ付きCephインストール(8/8)

2016-01-23

HOS 2.1 ネットワークカスタマイズ付きCephインストール(8/8)

Machine-translated — the English original is authoritative.

真実、そして全容を…

ここでは、このインストール中に遭遇したエラーについて説明します。

エラー – 1

構成プロセッサを実行すると、短い暗号化キーを受け入れ、実行の最後まで警告やエラーを表示しません。

InstallC (11)

構成プロセッサを再実行し、より強力な暗号化パスワード ‘H3lionhelion!’ を使用しました。

そして、デバッグが必要な次の構成へと進みます…

エラー – 2

cd ~/helion/hos/ansible
ansible-playbook -i hosts/localhost config-processor-run.yml

InstallC (12)

network_groups.yml ファイルを見ると、このセクションを修正し忘れていることがわかります。

InstallC (13)

外部名として ‘hos2.allthingscloud.eu’ を追加しました。

installC(100)

エラー – 3

servers.yml ファイルで割り当てた nic_mapping プロファイルについても文句を言われています。

InstallC (15)

このプロファイルは nic_mappings ファイルに欠けていました。

正しいプロファイル HP-DL360-8PORTnic_mappings ファイルに追加しました。

InstallC (16)

これで、これらの変更すべてをリポジトリにコミットし、最初からやり直す必要があります。

cd ~/helion/hos/ansible
git add -A
git commit -m "Fixed initial configuration errors"

エラー – 4

cd ~/scratch/ansible/next/hos/ansible
ansible-playbook -i hosts/verb_hosts wipe_disks.yml

ディスクの消去を試みると、以下のエラーが発生しました。

InstallC (27)

これは機密コンテンツを暗号化したためです。これを克服するには、コマンドラインの一部として --ask-vault-pass を指定する必要があります。

ansible-playbook -i hosts/verb_hosts wipe_disks.yml --ask-vault-pass

エラー – 5

ほぼ完了したと思ったときに、以下のような別の失敗が発生しました。

InstallC (30)

~/.ansible/ansible.log には、破損したディスクパーティションに関する多くの警告があります。以下のスクリプトを使用して、これらを「手動で」クリアしようとしました。

clear_host() {
  ssh $1 << EOF
    echo onhost connected
    sudo /bin/dd if=/dev/zero of=/dev/sdb bs=512 count=2
    sudo /bin/dd if=/dev/zero of=/dev/sdc bs=512 count=2
    sudo /bin/dd if=/dev/zero of=/dev/sdd bs=512 count=2
    sudo /bin/dd if=/dev/zero of=/dev/sde bs=512 count=2
    sudo /bin/dd if=/dev/zero of=/dev/sdf bs=512 count=2
    sudo /bin/dd if=/dev/zero of=/dev/sdg bs=512 count=2
    sudo /bin/dd if=/dev/zero of=/dev/sdh bs=512 count=2
    sync
EOF
}

export -f clear_host

seq 15 17 | while read i; do
  clear_host 172.16.60.$i
done

しかし、これも効果はありませんでした。同じパーティションエラーが発生します。

次の修正試行では、各CephサーバーのRAIDコントローラにログインし、OS以外のドライブを削除して再作成します。

InstallC (31)InstallC (32)InstallC (33)InstallC (34)InstallC (35)

OSドライブである Array A を除き、すべての Array を削除します。

InstallC (36)InstallC (37)

Array B ~ G についてもこれを繰り返すと、最終的に以下のような状態になります。

InstallC (38)

これで、すべてのRAID0ドライブアレイを再構築します。

InstallC (39)

「RAID 0でアレイを作成」オプションを選択します。

InstallC (40)

OKを選択します。

InstallC (41)InstallC (42)InstallC (43)

このプロセスを他の2つのCephノードでも繰り返し、その後デプロイメントを再実行します。

ansible-playbook -i hosts/verb_hosts site.yml --ask-vault-pass --limit @/home/graham/site.retry

再び全く同じ失敗が発生しました…既知のバグを探す時が来ました…

はい、これは既知のバグです – wipe_disk 機能は常に正しく動作するわけではありません –
各ノードにログインし、各ジャーナルおよびOSDドライブに対して以下のコマンドを実行する必要があります。

/sbin/sgdisk --zap-all -- /dev/sd[b-h]

または、以下のスクリプトを使用します。

clear_host() {
  ssh $1 << EOF
    echo onhost connected
    sudo /sbin/sgdisk --zap-all -- /dev/sdb 
    sudo /sbin/sgdisk --zap-all -- /dev/sdc 
    sudo /sbin/sgdisk --zap-all -- /dev/sdd 
    sudo /sbin/sgdisk --zap-all -- /dev/sde 
    sudo /sbin/sgdisk --zap-all -- /dev/sdf 
    sudo /sbin/sgdisk --zap-all -- /dev/sdg 
    sudo /sbin/sgdisk --zap-all -- /dev/sdh 
    sync
EOF
}

export -f clear_host

seq 15 17 | while read i; do
  clear_host 172.16.60.$i
done

エラー – 6

そして、中断した場所から続行します –

ansible-playbook -i hosts/verb_hosts site.yml --ask-vault-pass --limit @/home/graham/site.retry

これで次の課題に直面します –

InstallC (44)

ご覧の通り、これは認証について文句を言っています。見えない部分ですが、元の失敗したscreenセッションに再接続してから12時間以上が経過しています。--limit @/home/graham/site.retry を付加することで、失敗した箇所から継続しようとしていますが、一部の認証トークンが期限切れになったようです。

--limit @/home/graham/site.retry オプションなしでインストールを再実行します。

ansible-playbook -i hosts/verb_hosts site.yml --ask-vault-pass

Originally published on allthingscloud.eu (2016-01-23).

← All posts