このBlog はNutanix アドベントカレンダー2020 の12/4 分です。
今年もいきなりJST を無視したスタートとなりました。
コロナ禍で3月上旬より在宅勤務となり既に10カ月が過ぎようとしています。仕事の方は幸いリモート + ちょいちょい対面でなんとかなっていますが、以前から夜型だったのが更に悪化してしまい、ベッドに入る時間が4:00 過ぎなんてのもザラになってしまいました。
なので主観時間では今日はまだ12/4 という事でひとつよろしくお願いします。
さて、今回はライトなネタという事でNutanix CE 環境でのHDD 交換で行こうと思います。
たいていどのメーカーでもローエンドのデスクトップ用HDD シリーズは低価格とトレードオフで耐久性も控えめになっています。ここでは具体的な製品名は上げませんが某社の青いラベルのやつとか某社2の緑のラベルのやつとかは連続稼働をさせるとなかなかの頻度で壊れてくれます。でも安いのでテスト用途だとついつい買ってしまうんですよね。
今回交換対象になったのもそんな感じで我が家のNutanix CE クラスターに組み込まれて1年ちょい位のディスクでした。
ある日Prism にログインすると様子がおかしい…
データの信頼性に重要アラートがあがっており、冗長性が無くなってしまっているようです。(でもクラスターとしては普通に動作している)
アラート内容を確認するとHDD が1基 Failして既にディスクとして認識しなくなっている模様。
HDD 交換後の作業
交換用のHDD も主に安かったからという理由で、故障したものと同型のSeagate BarraCuda のST4000DM004 を購入し、そのまま物理的にリプレイスしました。
商用版Nutanix の様にホットスワップ可能なディスクが複数本搭載されている環境では物理的な交換 + Prism上でのGUI 操作と非常に簡単に故障ディスクの交換が可能ですが、通常CE 環境では交換後にCLI でディスクを認識させる必要があります。
HDD を交換してディスク構成が変わったのでマシンを起動してもCVM は起動しません。SSH でAHV ホストに接続し、virsh でCVM のディスク構成を編集します。
編集するにあたり、交換後のディスク情報が必要になりますので、CLI で情報収集し、必要な項目をメモしておきます。
1. lsscsi でディスク構成を確認し、 /devの場所を特定(青字が交換後のディスク)
[root@AHV-Z420-B ~]# lsscsi[1:0:0:0] disk SanDisk Ultra Fit 1.00 /dev/sdc[2:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sda[6:0:0:0] cd/dvd HL-DT-ST DVD-RAM GH40L RB02 /dev/sr0[7:0:0:0] disk ATA ST4000DM004-2CV1 0001 /dev/sdb
2. smartctl でディスクの詳細情報を確認し、シリアル番号やWWNを確認
[root@AHV-Z420-B ~]# smartctl -i /dev/sdbsmartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.4.77-1.el7.nutanix.20191030.415.x86_64] (local build)Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF INFORMATION SECTION ===Model Family: Seagate Barracuda 3.5Device Model: ST4000DM004-2CV104Serial Number: WFN3VZPNLU WWN Device Id: 5 000c50 0d0688774Firmware Version: 0001User Capacity: 4,000,787,030,016 bytes [4.00 TB]Sector Sizes: 512 bytes logical, 4096 bytes physicalRotation Rate: 5425 rpmForm Factor: 3.5 inchesDevice is: In smartctl database [for details use: -P show]ATA Version is: ACS-3 T13/2161-D revision 5SATA Version is: SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)Local Time is: Sat Nov 28 08:40:11 2020 UTCSMART support is: Available - device has SMART capability.SMART support is: Enabled
3. ls /dev/disk/by-id/ | grep シリアル番号 でディスク IDを確認します。
[root@AHV-Z420-B ~]# ls /dev/disk/by-id/ | grep WFN3VZPNata-ST4000DM004-2CV104_WFN3VZPN
4. virsh list でCVM 名を確認します。
[root@AHV-Z420-B ~]# virsh list --allId Name State----------------------------------------------------2 52cda452-72a6-418a-8ddb-9b2ef1aa2808 running3 44b99f4e-3741-4595-9097-ca6694797d84 running- NTNX-Z420-B-CVM shut off
5. virsh edit でCVM の仮想マシン構成情報を編集します。
vi が起動するので、スクロールダウンして</disk> の項目を探します。
先の確認手順でメモしておいた各種ディスク情報で青文字の個所を置き換えます。
</disk><disk type='block' device='disk'><driver name='qemu' type='raw' cache='none' io='native'/><source dev='/dev/disk/by-id/ata-ST4000DM004-2CV104_WFN3VZPN'/><target dev='sdb' bus='scsi'/><serial>WFN3VZPN</serial><wwn>5000c500d0688774</wwn><vendor>ATA</vendor><product>ST4000DM004-2CV1</product><address type='drive' controller='0' bus='0' target='0' unit='0'/></disk>
6. CVM を起動します。
[root@AHV-Z420-B ~]# virsh start NTNX-Z420-B-CVM
CVM 上での作業
7. CVM にSSH 接続し、list_disks でディスク構成を確認します。
nutanix@NTNX-6bb43c52-A-CVM:192.168.10.107:~$ list_disksSlot Disk Model Serial Size0 -------- ---------------- --------------- ------1 /dev/sdb Samsung SSD 860 S4BENG0KA10895W 500 GB2 /dev/sda ST4000DM004-2CV1 WFN3VZPN 4.0 TB
(※交換したディスクは認識されているがvirsh edit でSSD とドライブ順を逆にしてしまった模様)
8. cluster/bin/repartition_disks で交換したディスクのパーティション設定をおこないます。
nutanix@NTNX-6bb43c52-A-CVM:192.168.10.107:~$ sudo cluster/bin/repartition_disks -d /dev/sdaNode is managed by Hades. This script should not be run manually. Do you really want to continue? (Y/[N]):Y2020-11-28 09:09:56,494Z INFO repartition_disks:295 Cleaning existing partition tables on disks: set(['/dev/sda'])2020-11-28 09:09:56,715Z INFO repartition_disks:323 Creating data partitions on disks: ['/dev/sda']2020-11-28 09:09:56,791Z INFO repartition_disks:199 Detected partition /dev/sda12020-11-28 09:09:56,791Z INFO repartition_disks:154 sgdisk not found, unable to prevent hyper-V automount
9. cluster/bin/clean_disks でファイルシステムの初期化を実施。
nutanix@NTNX-6bb43c52-A-CVM:192.168.10.107:~$ sudo cluster/bin/clean_disks -p /dev/sda1Node is managed by Hades. This script should not be run manually. Do you really want to continue? (Y/[N]):Y2020-11-28 09:10:44,570Z INFO clean_disks:250 Cleaning partitions: ['/dev/sda1']2020-11-28 09:10:44,571Z INFO clean_disks:96 Formatting partition /dev/sda1 with ext42020-11-28 09:10:44,572Z INFO disk.py:1192 Formatting disk /dev/sda1 with ext42020-11-28 09:10:44,572Z INFO disk.py:1160 Checking if ext4 FS should enable bigalloc for /dev/sda12020-11-28 09:10:44,572Z INFO disk.py:1164 Checking if partition /dev/sda1 on /dev/sda is a HDD for bigalloc2020-11-28 09:10:44,572Z INFO disk.py:1167 Executing: sudo sg_vpd --page=bdc /dev/sda2020-11-28 09:10:44,681Z ERROR disk.py:1171 Couldn't read sg_vpd for /dev/sda1, retval: 5, received err: fetching VPD page failed2020-11-28 09:10:44,681Z INFO disk.py:1202 Formatting using command: sudo mke2fs -F -m 1 -t ext4 -E lazy_itable_init,nodiscard /dev/sda1
10. cluster/bin/mount_disks でCVMにディスクをマウントします。
nutanix@NTNX-6bb43c52-A-CVM:192.168.10.107:~$ sudo cluster/bin/mount_disksNode is managed by Hades. This script should not be run manually. Do you really want to continue? (Y/[N]):Y2020-11-28 09:11:51,229Z INFO mount_disks:515 No disks to stripe, continuing...2020-11-28 09:11:51,230Z INFO fio_utils.py:72 Executing command lspci2020-11-28 09:11:51,258Z INFO fio_utils.py:113 No Fusion IO cards present on the local node2020-11-28 09:11:51,260Z INFO mount_disks:585 Mounting disks: set(['/dev/sdb', '/dev/sda'])2020-11-28 09:11:51,274Z INFO mount_disks:195 Partition /dev/sdb4 is mounted, skipping...2020-11-28 09:11:51,275Z INFO mount_disks:195 Partition /dev/sdb3 is mounted, skipping...2020-11-28 09:11:51,276Z INFO mount_disks:195 Partition /dev/sdb2 is mounted, skipping...2020-11-28 09:11:51,277Z INFO mount_disks:202 Skipping partition /dev/sdb1 used by Nutanix software2020-11-28 09:11:51,278Z INFO mount_disks:230 Setting /sys/block/sdb/queue/rotational to 1 for disk /dev/sdb2020-11-28 09:11:51,279Z INFO mount_disks:173 Disabling the write cache on disk /dev/sda2020-11-28 09:11:51,531Z INFO mount_disks:215 Checking for corrupt filesystem on partition /dev/sda12020-11-28 09:11:51,531Z INFO mount_disks:219 Enabling journaling on ext4 partition /dev/sda1
11. genesis サービスを再起動します。
nutanix@NTNX-6bb43c52-A-CVM:192.168.10.107:~$ genesis restart2020-11-28 09:12:39.155756: Stopping genesis (pids [2693, 2782, 2805, 2806, 4437, 4438])2020-11-28 09:12:42.002151: Genesis started on pids [25666]
動作確認
以上で物理交換後の再認識作業は完了です。
Prism にログインして確認します。
無事に認識された様で、クラスターのデータ冗長性が回復しました。 |
また、ディスク一覧を確認するとこちらも正常に認識されている事が確認出来ます。
交換したディスクの使用状況が表示されるまでには状況により時間がかかります。 |
ディスク交換方法を把握しておくことで、Nutanix CE クラスターを長期にわたり安定して検証利用する事が可能になります。
なお余談ですが、構築済みのCEノードに単純にディスクを追加する場合は ce_add_disk コマンドを使えば簡単に追加する事が出来るはずです。
それでは。
コメント
コメントを投稿