このブログもかれこれ14年になります。
流石に10年以上も運営してるとデータ量が膨大になり、今ではバックアップを取ると3.2GBを越えるデータ量になってました。
そこに別途画像データを加えると総量では10数GBとかになる訳で、ファイルシステム39.1GBの KUSANAGI ではアップデート時に容量不足でアップデートできないなんてことも増えて来ました。
そこで今回は今までやったことのないディスク増設を行うため、その手順の覚え書きとなります。
本当は圧迫されたルートディレクトリの容量を増やしたかったのですが、検索してもヒットしないので現状ではkusanagiを構成するデータが収められた/homeディレクトリを増設した仮想ハードディスクに収めるといった形で進めて行きます。
VMwareで仮想ハードディスクを増設する
VMwareのLauncherで「仮想マシン設定の編集」をクリックします。
「追加」ボタンをクリックします。
「ハードディスク」を選択して「次へ」をクリックします。
「SCSI(S)」を選択して「次へ」をクリックします。
「仮想ディスクの新規作成(V)」を選択して「次へ」をクリックします。
ディスク最大サイズに希望の容量をGB単位で入力して、「今すぐ全ディスク容量を割り当てる」にチェックを入れて「次へ」をクリックします。
「次へ」をクリックします。
ハードディスクが割り当てられていることを確認して、仮想ハードディスクの増設は完了となります。
CentOS Stream 9でディスクを割り当てる
増設前の確認
[root@testserver ~]# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 730M 18M 713M 3% /run /dev/sda1 39G 33G 6.3G 84% / tmpfs 365M 0 365M 0% /run/user/0 [root@testserver ~]#
仮想ディスクの認識を確認
増設した仮想ディスクがsdbとして認識していることを確認します。
[root@testserver ~]# fdisk -l ディスク /dev/sda: 39.06 GiB, 41943040000 バイト, 81920000 セクタ ディスク型式: VMware Virtual S 単位: セクタ (1 * 512 = 512 バイト) セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスクラベルのタイプ: dos ディスク識別子: 0x88efb32b デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ /dev/sda1 * 2048 81919999 81917952 39.1G 83 Linux ディスク /dev/sdb: 300 GiB, 322122547200 バイト, 629145600 セクタ ディスク型式: VMware Virtual S 単位: セクタ (1 * 512 = 512 バイト) セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト [root@testserver ~]#
パーティションの作成
/dev/sdbに100GBのパーティションを割り当てます。
[root@testserver ~]# fdisk /dev/sdb fdisk (util-linux 2.37.4) へようこそ。 ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。 書き込みコマンドを使用する際は、注意して実行してください。 デバイスには認識可能なパーティション情報が含まれていません。 新しい DOS ディスクラベルを作成しました。識別子は 0xff9274af です。 コマンド (m でヘルプ): m //ヘルプを確認 ヘルプ: DOS (MBR) a 起動可能フラグを切り替えます b 入れ子の BSD ディスクラベルを編集します c DOS 互換フラグを切り替えます 一般 d パーティションを削除します F パーティションのない領域を一覧表示します l 既知のパーティションタイプを一覧表示します n 新しいパーティションを追加します p パーティション情報を表示します t パーティションタイプを変更します v パーティション情報を検証します i パーティションの情報を表示します その他 m このメニューを表示します u 表示項目の単位を変更します x 特殊機能に移動します (熟練者向け機能) スクリプト I ディスクのレイアウトを sfdisk 互換のスクリプトから読み込みます O ディスクのレイアウトを sfdisk 互換のスクリプトに書き出します 保存と終了 w パーティション情報をディスクに書き込んで終了します q 変更点を保存せずに終了します 新しいラベルを作成します g 新しい (何もない) GPT パーティションテーブルを作成します G 新しい (何もない) SGI (IRIX) パーティションテーブルを作成します o 新しい (何もない) DOS パーティションテーブルを作成します s 新しい (何もない) Sun パーティションテーブルを作成します コマンド (m でヘルプ): p //パーティションの情報を確認 ディスク /dev/sdb: 300 GiB, 322122547200 バイト, 629145600 セクタ ディスク型式: VMware Virtual S 単位: セクタ (1 * 512 = 512 バイト) セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスクラベルのタイプ: dos ディスク識別子: 0xff9274af コマンド (m でヘルプ): n //パーティション領域の作成 パーティションタイプ p 基本パーティション (0 プライマリ, 0 拡張, 4 空き) e 拡張領域 (論理パーティションが入ります) 選択 (既定値 p): p //基本パーティションを選択 パーティション番号 (1-4, 既定値 1): 1 //パーティション番号を入力 最初のセクタ (2048-629145599, 既定値 2048): //空Enter 最終セクタ, +/-セクタ番号 または +/-サイズ{K,M,G,T,P} (2048-629145599, 既定値 629145599): +100GB //サイズを入力 新しいパーティション 1 をタイプ Linux、サイズ 93.1 GiB で作成しました。 コマンド (m でヘルプ): w //設定したパーティション情報をディスクに書き込んで終了 パーティション情報が変更されました。 ioctl() を呼び出してパーティション情報を再読み込みします。 ディスクを同期しています。 [root@testserver ~]#
sdb用のパーティションが作成されたことを確認
sdb1パーティションが作成されたことを確認します。
[root@testserver ~]# fdisk -l ディスク /dev/sda: 39.06 GiB, 41943040000 バイト, 81920000 セクタ ディスク型式: VMware Virtual S 単位: セクタ (1 * 512 = 512 バイト) セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスクラベルのタイプ: dos ディスク識別子: 0x88efb32b デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ /dev/sda1 2048 81919999 81917952 39.1G 83 Linux ディスク /dev/sdb: 300 GiB, 322122547200 バイト, 629145600 セクタ ディスク型式: VMware Virtual S 単位: セクタ (1 * 512 = 512 バイト) セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスクラベルのタイプ: dos ディスク識別子: 0xff9274af デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ /dev/sdb1 2048 195313663 195311616 93.1G 83 Linux [root@testserver ~]#
既存ディスクのフォーマット形式を確認
[root@testserver ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Mon Aug 21 02:33:36 2023 # # Accessible filesystems, by reference, are maintained under '/dev/disk/'. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # UUID=068679f1-b4ef-41a3-bcce-77b778304136 / xfs defaults 0 0 [root@testserver ~]#
ディスクをフォーマットする
[root@testserver ~]# mkfs -t xfs /dev/sdb1 meta-data=/dev/sdb1 isize=512 agcount=4, agsize=6103488 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=1 inobtcount=1 nrext64=0 data = bsize=4096 blocks=24413952, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=16384, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@testserver ~]#
手動でディスクをマウントする
[root@testserver ~]# mount /dev/sdb1 /home [root@testserver ~]# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 730M 18M 713M 3% /run /dev/sda1 39G 33G 6.3G 84% / tmpfs 365M 0 365M 0% /run/user/0 /dev/sdb1 94G 697M 93G 1% /home [root@testserver ~]#
UUIDの取得
OS起動時に自動でマウントするために/etc/fstabに設定を追記する必要があります。
そのためにあらかじめUUIDを確認します。
[root@testserver ~]# blkid /dev/sdb1 /dev/sdb1: UUID="c3d9dfb6-09fc-4249-892d-1e3e3bc1e230" TYPE="xfs" PARTUUID="ff9274af-01" [root@testserver ~]#
OS起動時の自動マウント設定
/etc/fstabに設定を追記します。
第1フィールド:デバイス名またはUUID
第2フィールド:マウントポイント
第3フィールド:ファイルシステム
第4フィールド:マウントオプション
第5フィールド:ファイルシステムをdumpする必要があるか否かの指定
「0」または無記述の場合はdump不要と見なされる
第6フィールド:システム起動時にfsckチェックを行うか否かの指定
「0」の場合はチェックを行わない。
/etc/fstabに記述されている数字の意味
# vi /etc/fstab # # /etc/fstab # Created by anaconda on Mon Aug 21 02:33:36 2023 # # Accessible filesystems, by reference, are maintained under '/dev/disk/'. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # UUID=068679f1-b4ef-41a3-bcce-77b778304136 / xfs defaults 0 0 UUID=c3d9dfb6-09fc-4249-892d-1e3e3bc1e230 /home xfs defaults 1 2 # ↑確認したUUIDを最終行に追記する
OS起動前の自動マウント確認
ここまで順にコマンドを実行していた場合、既にマウント済みなので一度アンマウントしてマウントし直します。
既にマウントされていることを確認する
[root@testserver ~]# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 730M 18M 713M 3% /run /dev/sda1 39G 33G 6.3G 84% / tmpfs 365M 0 365M 0% /run/user/0 /dev/sdb1 94G 697M 93G 1% /home [root@testserver ~]#
/dev/sdb1をアンマウントする
[root@testserver ~]# umount /home [root@testserver ~]# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 730M 18M 713M 3% /run /dev/sda1 39G 33G 6.3G 84% / tmpfs 365M 0 365M 0% /run/user/0 [root@testserver ~]#
/dev/sdb1をマウントし直す
[root@testserver ~]# mount -a [root@testserver ~]# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 730M 18M 713M 3% /run /dev/sda1 39G 33G 6.3G 84% / tmpfs 365M 0 365M 0% /run/user/0 /dev/sdb1 94G 697M 93G 1% /home [root@testserver ~]#
OSを再起動して自動マウントを確認する
[root@localhost ~]# reboot [root@localhost ~]# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 730M 18M 713M 3% /run /dev/sda1 39G 33G 6.3G 84% / /dev/sdb1 94G 697M 93G 1% /home tmpfs 365M 0 365M 0% /run/user/0 [root@localhost ~]#
以上で仮想ディスク増設が完了です。
お疲れ様でした。
コメント