はじめに
Zabbix 6.4のアプライアンス版では、MySQLで使用するパーティションとなる/dev/sda5は数GBしかありません。検証用途で使う場合には問題ありませんが、中・大規模システムで使用する場合には全く足りません。そこで、今回は、ディスク拡張した場合の手順を公開します。
※公式ドキュメントには、本番運用には使用しないでくださいとありますが、そういった忠告無視で運用したい方向けとなります。
バックアップの取得とディスク拡張
こちらはzabbixアプライアンスを動作させている仮想化マシン(VMwareなど)で行うことです。ディスク拡張では、ちょっとした作業をミスすると取り返しがつかないことがあります。そのため、事前にスナップショットやクローンでバックアップを取得しましょう。その後、ディスク拡張を行います。
現在のディスクの状態
次のコマンドで確認できます。/dev/sda5が/var/lib/mysqlにマウントされていることがわかります。
[root@zabbix ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 17M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda2 4.0G 1.6G 2.5G 40% / /dev/sda3 1014M 40M 975M 4% /tmp /dev/sda5 15G 986M 14G 7% /var/lib/mysql ※今回はすでに拡張済み /dev/sda1 488M 50M 402M 11% /boot tmpfs 791M 0 791M 0% /run/user/0
システムの停止
次のコマンドでzabbixサーバのフロントエンドとDBを停止します。
[root@zabbix ~]# systemctl stop php-fpm zabbix-server zabbix-agent [root@zabbix ~]# systemctl stop mysqld
/var/lib/mysqlのアンマウント
次のコマンドでアンマウントします。
[root@zabbix ~]# umount /var/lib/mysql
確認します。
[root@zabbix ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 17M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda2 4.0G 1.6G 2.5G 40% / /dev/sda3 1014M 40M 975M 4% /tmp /dev/sda1 488M 50M 402M 11% /boot tmpfs 791M 0 791M 0% /run/user/0
既存ディスクの拡張
次のように対応します。赤字の箇所がコマンドです。
ここで、先に大事なことを言います。
Do you want to remove the signature? [Y]es/[N]o:と聞かれる箇所については必ず、Nを入力してください。Yのまま、W(書き込み)をすると、/dev/sda5のXFSでフォーマットされたはずなのに消失します。
[root@zabbix ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d Partition number (1-5, default 5): 5 Partition 5 has been deleted. Command (m for help): p Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xb27a3ada Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 1050623 1048576 512M 83 Linux /dev/sda2 1050624 9439231 8388608 4G 83 Linux /dev/sda3 9439232 11536383 2097152 1G 83 Linux /dev/sda4 11536384 41943039 30406656 14.5G 5 Extended Command (m for help): d Partition number (1-4, default 4): 4 Partition 4 has been deleted. Command (m for help): p Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xb27a3ada Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 1050623 1048576 512M 83 Linux /dev/sda2 1050624 9439231 8388608 4G 83 Linux /dev/sda3 9439232 11536383 2097152 1G 83 Linux Command (m for help): n Partition type p primary (3 primary, 0 extended, 1 free) e extended (container for logical partitions) Select (default e): e Selected partition 4 First sector (11536384-41943039, default 11536384): Last sector, +sectors or +size{K,M,G,T,P} (11536384-41943039, default 41943039): Created a new partition 4 of type 'Extended' and of size 14.5 GiB. Command (m for help): p Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xb27a3ada Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 1050623 1048576 512M 83 Linux /dev/sda2 1050624 9439231 8388608 4G 83 Linux /dev/sda3 9439232 11536383 2097152 1G 83 Linux /dev/sda4 11536384 41943039 30406656 14.5G 5 Extended Command (m for help): n All primary partitions are in use. Adding logical partition 5 First sector (11538432-41943039, default 11538432): Last sector, +sectors or +size{K,M,G,T,P} (11538432-41943039, default 41943039): Created a new partition 5 of type 'Linux' and of size 14.5 GiB. Partition #5 contains a xfs signature. Do you want to remove the signature? [Y]es/[N]o:N 必ずNで! The signature will be removed by a write command. Command (m for help): p Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xb27a3ada Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 1050623 1048576 512M 83 Linux /dev/sda2 1050624 9439231 8388608 4G 83 Linux /dev/sda3 9439232 11536383 2097152 1G 83 Linux /dev/sda4 11536384 41943039 30406656 14.5G 5 Extended /dev/sda5 11538432 41943039 30404608 14.5G 83 Linux Filesystem/RAID signature on partition 5 will be wiped. Command (m for help): w The partition table has been altered. Syncing disks.
Do you want to remove the signature? [Y]es/[N]o:をYにした場合
partedを使うとわかりますが、元々はxfsでフォーマットされていたはずなのに消失します。事前にスナップショットを取得している場合は元に戻しましょう。
[root@zabbix ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 538MB 537MB primary ext4 boot
2 538MB 4833MB 4295MB primary xfs
3 4833MB 5907MB 1074MB primary xfs
4 5907MB 21.5GB 15.6GB extended
5 5908MB 21.5GB 15.6GB logical ※xfsが無くなっている!
では、続いて再マウントを行います。
/var/lib/mysqlへの再マウント
/dev/sda5を再度マウントします。
無事に成功しました。
[root@zabbix ~]# mount /dev/sda5 /var/lib/mysql
[root@zabbix ~]#
[root@zabbix ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 17M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda2 4.0G 1.6G 2.5G 40% /
/dev/sda3 1014M 40M 975M 4% /tmp
/dev/sda1 488M 50M 402M 11% /boot
tmpfs 791M 0 791M 0% /run/user/0
/dev/sda5 15G 136M 15G 1% /var/lib/mysql
失敗する場合は次のようなエラーが表示されるはずです。
[root@zabbix ~]# mount /dev/sda5 /var/lib/mysql mount: /var/lib/mysql: wrong fs type, bad option, bad superblock on /dev/sda5, missing codepage or helper program, or other error.
ファイルシステムの拡張
マウントした後ではディスクサイズが増えていないように見えます。ファイルシステムの拡張も併せてしてください。
[root@zabbix ~]# xfs_growfs /dev/sda5 meta-data=/dev/sda5 isize=512 agcount=4, agsize=950144 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=3800576, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
確認します。この例では増えていませんが、実際にディスク拡張した場合は増えます。
[root@zabbix ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 17M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda2 4.0G 1.6G 2.5G 40% /
/dev/sda3 1014M 40M 975M 4% /tmp
/dev/sda1 488M 50M 402M 11% /boot
tmpfs 791M 0 791M 0% /run/user/0
/dev/sda5 15G 136M 15G 1% /var/lib/mysql
システムの起動
次のコマンドでzabbixサーバのフロントエンドとDBを起動します。
systemctl start mysqld [確認] systemctl status mysqld systemctl start zabbix-agent zabbix-server php-fpm [確認] systemctl status zabbix-server systemctl status zabbix-agent systemctl status php-fpm
ステータスがOKであれば、無事にディスクの拡張が完了しました。
関連記事
DBの格納先を、新規に追加したディスクやLVMへ変更する場合の手順は以下となります。
コメント