VMware ESXi上のCentOS7に外付けHDDを付けてマウントする

バックアップサーバとしてVMware ESXiにCentOSを入れていろいろバックアップをしているんですが、容量が不足してきたので新しいHDDに入れ替えることにしました。

※セキュリティ面のことを書き出したら但し書きばかりになってくるので端折ります。真似するなら自己責任でよく検討してください。

環境

実施日2019-12-19
仮想マシンVMware ESXi
 ・vSphere Client 6.0.0
 ・ VMware ESXi 6.0.0
ゲストOSCentOS

VMware ESXi を載せているのは、Dell社のPowerEdge T110 IIで、2014年3月4日に注文したものです。
そのためバージョンなどちょっと古めになっています。
※社内サーバとしての利用で、外部への公開は行っておりません。

cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
rpm -qa | grep centos-release
centos-release-7-7.1908.0.el7.centos.x86_64

新しいHDD

HDDの条件は次の通りです。

  • ポータブルHDD
  • USB3
  • バスパワー
  • 4TB以上
  • できれば色違いのあるもの

現在使っているのが2TBなので今後のことを考えて4TBあたりがコスパ良いかなって感じです。とりあえず3年くらいで買い替えても良いくらいで考えてます。
その頃にはまた容量大きいのが同じくらいの値段まで下がってると思います。

で選んだのが次の2つです。

同じ製品の赤色と青色です。
どちらも4TBです。
今になって思えば、異なるメーカーの4TBにしたら良かったかなと思いますが、今回は致命的になるものでもないので良しとしときます。
※同じメーカーの同じ型番で揃えると、故障時期も同じになるリスクがあると言われます。

RAIDにしない

同じHDDを2つ用意するのですが、RAIDにはしません。

私のバックアップ環境では、RAIDは使わずに多重化しています。
またポータブルHDDを使うことで、バックアップサーバ自体が壊れたり交換したりするときでもUSBの抜き差しとちょっとした作業で復旧できます。

単純にすることで扱いやすくしています。

実はマスターがいる

今回入れ替えることになったHDDは世代管理のためのHDDです。

常に最新版になっているバックアップは別のHDDにいます。
そこから日付ごとに別のHDDにバックアップを取っている形です。

  • 過去30日分は1日ごとにバックアップ。
  • 30日を超えて月が変わったら月末分を残して古いのは削除。
  • 毎月最終日のバックアップも2年が経過したらマージして削除。

▲のはイメージなので正確にこうしてるわけじゃないですがこんな感じです。

過去30日分は1日ごとのバックアップが残っている、という部分は事実です。
なので容量が大変なことになってきます。

普通に考えるとどう考えても容量オーバーなんですよね。
その辺はうまいこと差分バックアップとかしてますが、本記事から脱線していくのでまた今度にします。

新しいHDDを設置

やっと本題です。

USBを接続する前の状態を確認

ls -la /dev/disk/by-uuid
合計 0
drwxr-xr-x. 2 root root 180 10月 22 10:28 .
drwxr-xr-x. 6 root root 120 10月 22 10:28 ..
lrwxrwxrwx. 1 root root   9 10月 22 10:28 2015-mm-dd-hh-ii-00-00 -> ../../sr0
lrwxrwxrwx. 1 root root  10 10月 22 10:28 aaaaaaaaaaaaaaaaaaaa -> ../../sdb1
lrwxrwxrwx. 1 root root  10 10月 22 10:28 bbbbbbbbbbbbbbbbbbbb -> ../../dm-0
lrwxrwxrwx. 1 root root  10 10月 22 10:28 cccccccccccccccccccc -> ../../sda1
lrwxrwxrwx. 1 root root  10 10月 22 10:28 dddddddddddddddddddd -> ../../dm-1
lrwxrwxrwx. 1 root root  10 10月 22 10:28 eeeeeeeeeeeeeeeeeeee -> ../../sdc1
lrwxrwxrwx. 1 root root  10 10月 22 10:28 ffffffffffffffffffff -> ../../sdd1

一部加工してますがこんな感じです。
ここの aaaaaa(略)とかbbbbbb(略)のuuidが大事になってきます。
ですがその前に末尾の sda1 とか sdb1 に注目します。

df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    47G  1.9G   45G    4% /
devtmpfs                  7.8G     0  7.8G    0% /dev
tmpfs                     7.8G     0  7.8G    0% /dev/shm
tmpfs                     7.8G   81M  7.7G    2% /run
tmpfs                     7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/sda1                 497M  279M  219M   57% /boot
/dev/sdb1                 1.8T  354G  1.4T   21% /mnt/wd2tb
/dev/sdc1                 1.8T  1.6T  195G   89% /mnt/backup-blue2tb
/dev/sdd1                 1.8T  1.6T  195G   89% /mnt/backup-red2tb
tmpfs                     1.6G     0  1.6G    0% /run/user/1000

dfするとこんな感じです。
sda1 とか sdb1 がおりますね。そういうことです。

新しいUSB HDDを接続する

ちなみにDell社のPowerEdge T110 IIにはUSB3が付いてなかったのでドライブベイに付けれるUSB3コネクタを付けています。
▼の商品と同じものです。

なので、今回購入したHDD 2つ分を指すスペースはもともと空いてました。

VMware ESXi の設定

VMwareを使わず直接CentOSを使っている場合はこの作業は不要です。

shutdown -h now

▲ここでは起動中に行っていますが「仮想マシンのシャットダウン」をしてから行います。

「OK」を押したら、仮想マシンを起動してログインします。

USBを接続できたか確認

ls -la /dev/disk/by-uuid
合計 0
drwxr-xr-x. 2 root root 200 12月 19 14:45 .
drwxr-xr-x. 8 root root 160 12月 19 14:45 ..
lrwxrwxrwx. 1 root root   9 12月 19 14:45 2015-mm-dd-hh-ii-00-00 -> ../../sr0
lrwxrwxrwx. 1 root root  10 12月 19 14:45 aaaaaaaaaaaaaaaaaaaa -> ../../sdb1
lrwxrwxrwx. 1 root root  10 12月 19 14:45 bbbbbbbbbbbbbbbbbbbb -> ../../dm-0
lrwxrwxrwx. 1 root root  10 12月 19 14:45 GGGGGGGGGGGGGGGGGGGG -> ../../sde1
lrwxrwxrwx. 1 root root  10 12月 19 14:45 cccccccccccccccccccc -> ../../sda1
lrwxrwxrwx. 1 root root  10 12月 19 14:45 dddddddddddddddddddd -> ../../dm-1
lrwxrwxrwx. 1 root root  10 12月 19 14:45 eeeeeeeeeeeeeeeeeeee -> ../../sdc1
lrwxrwxrwx. 1 root root  10 12月 19 14:45 ffffffffffffffffffff -> ../../sdd1

一部加工しています。
接続前に確認したものと比べると GGGGGG(略)が増えています。
sde1 で認識されたようです。

無事認識できたということで、同じ手順でもう1つのHDDも接続しておきます。
※途中から読み始めた方のために言っておくと、USB HDD を2つ同時にマウントしようとしています。
※以下、手順を記していきますが、2つのHDDを同時進行していきます。

2つ目のUSB HDDを接続して次のようになりました。

ls -la /dev/disk/by-uuid
合計 0
drwxr-xr-x. 2 root root 220 12月 19 14:59 .
drwxr-xr-x. 8 root root 160 12月 19 14:59 ..
lrwxrwxrwx. 1 root root   9 12月 19 14:59 2015-mm-dd-xxxxx -> ../../sr0
lrwxrwxrwx. 1 root root  10 12月 19 14:59 7e2axxxxxxxxxxxx -> ../../sdb1
lrwxrwxrwx. 1 root root  10 12月 19 14:59 8774xxxxxxxxxxxx -> ../../dm-0
lrwxrwxrwx. 1 root root  10 12月 19 14:59 AE74xxxxxxxxxxxx -> ../../sde1
lrwxrwxrwx. 1 root root  10 12月 19 14:59 F68Cxxxxxxxxxxxx -> ../../sdf1
lrwxrwxrwx. 1 root root  10 12月 19 14:59 b2dfxxxxxxxxxxxx -> ../../sda1
lrwxrwxrwx. 1 root root  10 12月 19 14:59 bc92xxxxxxxxxxxx -> ../../dm-1
lrwxrwxrwx. 1 root root  10 12月 19 14:59 bf55xxxxxxxxxxxx -> ../../sdd1
lrwxrwxrwx. 1 root root  10 12月 19 14:59 dc84xxxxxxxxxxxx -> ../../sdc1

aaaaaa(略)とかだと私が見て分からないので隠し方を変えました。

sde1が「WD HDD 4TB 青」
sdf1が「WD HDD 4TB 赤」
このようになりました。

フォーマットをNTFSからext4に変更

購入したUSB HDDはNTFSでフォーマットされてましたので、ext4にフォーマットしなおします。

Linuxファイルシステムをまとめてみました

どのフォーマットが良いかは▲あたりを見て決めたら良いと思います。

ということで、2TBの壁を突破するのは fdisk ではなく parted です。

まずは現在の状況を見てみましょう。

parted -l
モデル: WD My Passport 2627 (scsi)
ディスク /dev/sde: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前         フラグ
 1    1049kB  4001GB  4001GB  ntfs              My Passport
モデル: WD My Passport 2626 (scsi)
ディスク /dev/sdf: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前         フラグ
 1    1049kB  4001GB  4001GB  ntfs              My Passport

関係ないところは省略して今回追加したUSB HDDのところだけ出してみました。

ファイルシステムがntfsになってます。

ディスク /dev/sde: 4001GB
ディスク /dev/sdf: 4001GB
こちらの2つが作業対象なんですが、sdeのほうだけ書いていきます。

parted /dev/sde
GNU Parted 3.1
/dev/sde を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted)

print と入力して Enter

(parted) print
モデル: WD My Passport 2627 (scsi)
ディスク /dev/sde: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前         フラグ
 1    1049kB  4001GB  4001GB  ntfs              My Passport

(parted)

このディスクで合っているので続けます。

mklabel と入力して Enter
gpt を入力して Enter
Y を入力して Enter

(parted) mklabel
新しいディスクラベル? gpt
警告: いま存在している /dev/sde のディスクラベルは破壊され、このディスクの全データが失われます。続行しますか?
はい(Y)/Yes/いいえ(N)/No? Y
(parted)

この操作でディスクが空になります。もともと gpt であっても「空にする」意味で行います。

mkpart と入力してEnter
(パーティション名)を入力して Enter
ext4 と入力してEnter
0% と入力してEnter
100% と入力してEnter

(parted) mkpart
パーティションの名前?  []? usb-wd-4tb-blue
ファイルシステムの種類?  [ext2]? ext4
開始? 0%
終了? 100%
(parted)

パーティション名は「usb-wd-4tb-blue」としました。
USB HDD のWD社製の4TBで青色です。
もいっこのHDDは赤色なので「usb-wd-4tb-red」にします。

念のため出来上がったことを確認します。

print と入力して Enter

(parted) print
モデル: WD My Passport 2627 (scsi)
ディスク /dev/sde: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前             フラグ
 1    1049kB  4001GB  4001GB  ntfs              usb-wd-4tb-blue

(parted)

注意深い方でしたらファイルシステムが ntfs のまま変わってないことに気が付くと思います。それで良いので続けましょう。

quit と入力して Enter で抜けます。

(parted) quit

ext4でフォーマットします。
/dev/sde1 の個所はご自身の環境に合わせてください。

mkfs.ext4 /dev/sde1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
244187136 inodes, 976745728 blocks
48837286 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=3124756480
29808 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

確認しましょう

parted -l
モデル: WD My Passport 2627 (scsi)
ディスク /dev/sde: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前             フラグ
 1    1049kB  4001GB  4001GB  ext4              usb-wd-4tb-blue
モデル: WD My Passport 2626 (scsi)
ディスク /dev/sdf: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前            フラグ
 1    1049kB  4001GB  4001GB  ext4              usb-wd-4tb-red

関係ないところは省略して今回追加したUSB HDDのところだけ出してみました。

これで準備は完了です。
次はいよいよマウントしていくところからです。

マウントする

ここで「 vi /etc/fstab しましょう。」って流れになると思うんですが、しません。

fstab に登録して、USBを外したままCentOSを起動するとエラーになります。
内蔵ディスクとかならfstabで良いと思いますが、今回はUSB HDDなので違う方法で行います。

※本記事で紹介する以外にも方法はありますのでケースバイケースです。

ディレクトリを作成する

まずはマウント先のディレクトリを作ります。
※赤・青、2つ分書いてます。

mkdir /mnt/usb-wd-4tb-blue
mkdir /mnt/usb-wd-4tb-red

で、パーミッションも変えときます。

chown shinohara:shinohara /mnt/usb-wd-4tb-blue
chown shinohara:shinohara /mnt/usb-wd-4tb-red

マウント対象を確認

ls -la /dev/disk/by-uuid
合計 0
drwxr-xr-x. 2 root root 220 12月 19 15:55 .
drwxr-xr-x. 8 root root 160 12月 19 14:59 ..
lrwxrwxrwx. 1 root root   9 12月 19 14:59 2015-mm-dd-xxxxx -> ../../sr0
lrwxrwxrwx. 1 root root  10 12月 19 15:55 7e2axxxxxxxxxxxx -> ../../sdb1
lrwxrwxrwx. 1 root root  10 12月 19 15:53 85a2xxxxxxxxxxxx -> ../../sdf1
lrwxrwxrwx. 1 root root  10 12月 19 15:55 8774xxxxxxxxxxxx -> ../../dm-0
lrwxrwxrwx. 1 root root  10 12月 19 15:47 8aa8xxxxxxxxxxxx -> ../../sde1
lrwxrwxrwx. 1 root root  10 12月 19 15:55 b2dfxxxxxxxxxxxx -> ../../sda1
lrwxrwxrwx. 1 root root  10 12月 19 15:55 bc92xxxxxxxxxxxx -> ../../dm-1
lrwxrwxrwx. 1 root root  10 12月 19 15:55 bf55xxxxxxxxxxxx -> ../../sdd1
lrwxrwxrwx. 1 root root  10 12月 19 15:55 dc84xxxxxxxxxxxx -> ../../sdc1

何回か出ているこちらを思い出します。
sde1が「WD HDD 4TB 青」
sdf1が「WD HDD 4TB 赤」
こうでした。

sde1 と sdf1 はフォーマットを変えたのでUUIDが変わっています。

マウントする

mount /dev/disk/by-uuid/8aa8xxxxxxxxxxxx /mnt/usb-wd-4tb-blue
mount /dev/disk/by-uuid/85a2xxxxxxxxxxxx /mnt/usb-wd-4tb-red

とりあえずマウントするだけならこれでOKです。

再起動したら外れるのでマウントしなおします。

結果

で、マウントした結果です。

df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  7.8G     0  7.8G    0% /dev
tmpfs                     7.8G     0  7.8G    0% /dev/shm
tmpfs                     7.8G  9.0M  7.8G    1% /run
tmpfs                     7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root    47G  2.1G   45G    5% /
/dev/sda1                 497M  280M  218M   57% /boot
tmpfs                     1.6G     0  1.6G    0% /run/user/1000
/dev/sdb1                 1.8T  354G  1.4T   21% /mnt/wd2tb
/dev/sdd1                 1.8T  1.6T  195G   89% /mnt/backup-blue2tb
/dev/sdc1                 1.8T  1.6T  195G   89% /mnt/backup-red2tb
/dev/sde1                 3.6T   89M  3.4T    1% /mnt/usb-wd-4tb-blue
/dev/sdf1                 3.6T   89M  3.4T    1% /mnt/usb-wd-4tb-red

一番下2つが今回追加した分です。

で、その上2つが取り換える予定の2TBの青と赤です。