RAID1で構築しているパーティションが余っていたので、その領域を縮小させる。
現状。
root@edo / # df Filesystem 1K-blocks Used Available Use% Mounted on udev 10240 0 10240 0% /dev /dev/md3 32895784 29665708 1536028 96% / tmpfs 783424 2640 780784 1% /run cgroup_root 10240 0 10240 0% /sys/fs/cgroup shm 3917112 0 3917112 0% /dev/shm /dev/md4 408069104 76185332 310797564 20% /data /dev/mapper/VG_DATA2_20150825-data2 41153856 24537848 14544420 63% /data2 root@edo / # df -h Filesystem Size Used Avail Use% Mounted on udev 10M 0 10M 0% /dev /dev/md3 32G 27G 2.9G 91% / tmpfs 766M 2.6M 763M 1% /run cgroup_root 10M 0 10M 0% /sys/fs/cgroup shm 3.8G 0 3.8G 0% /dev/shm /dev/md4 390G 73G 298G 20% /data /dev/mapper/VG_DATA2_20150825-data2 40G 24G 14G 63% /data2 root@edo / # mdadm --detail --scan ARRAY /dev/md1 metadata=0.90 UUID=b5524b46:d7163145:cb201669:f728008a ARRAY /dev/md4 metadata=1.2 name=edo:/data UUID=8f55590b:38f15e8a:4ea20fad:c34229d8 ARRAY /dev/md3 metadata=1.2 name=edo:/ UUID=1a4518b9:879d5121:f1651760:8b1a1f02 ARRAY /dev/md/edo:5 metadata=1.2 name=edo:5 UUID=4ed5c360:ccebb0be:93433852:f0358022 root@edo / # cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath] md127 : active raid0 sdb5[1] sda5[0] 52942848 blocks super 1.2 512k chunks md3 : active raid1 sda3[2] sdb3[3] 33553336 blocks super 1.2 [2/2] [UU] md4 : active raid1 sda4[2] sdb4[1] 421396480 blocks super 1.2 [2/2] [UU] bitmap: 2/4 pages [8KB], 65536KB chunk md1 : active raid1 sda1[0] sdb1[1] 524224 blocks [2/2] [UU] unused devices: <none> root@edo / # cat /etc/fstab # /etc/fstab: static file system information. # # noatime turns off atimes for increased performance (atimes normally aren't # needed); notail increases performance of ReiserFS (at the expense of storage # efficiency). It's safe to drop the noatime options if you want and to # switch between notail / tail freely. # # The root filesystem should have a pass number of either 0 or 1. # All other filesystems should have a pass number of 0 or greater than 1. # # See the manpage fstab(5) for more information. # # <fs> <mountpoint> <type> <opts> <dump/pass> # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts. /dev/md1 /boot ext4 noauto,noatime 1 2 /dev/md3 / ext4 noatime 1 1 /dev/sda6 none swap sw,pri=1 0 0 /dev/sdb6 none swap sw,pri=1 0 0 /dev/md4 /data ext4 noatime 1 2 #/dev/cdrom /mnt/cdrom auto noauto,ro 0 0 #/dev/fd0 /mnt/floppy auto noauto 0 0 #/dev/VG_DATA2_20121129/data2 /data2 ext4 noatime 1 0 /dev/VG_DATA2_20150825/data2 /data2 ext4 noatime 1 0 #/proc /chroot/dhcp/proc none bind 0 0 root@edo /
# fdisk -l /dev/sda Disk /dev/sda: 465.78 GiB, 500107862016 bytes, 976773168 sectors Disk model: Samsung SSD 850 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: gpt Disk identifier: 431735A7-BD0D-410F-A96C-C292628A24CA Device Start End Sectors Size Type /dev/sda1 2048 1050623 1048576 512M Linux RAID /dev/sda2 1050624 1116159 65536 32M BIOS boot /dev/sda3 13633536 80742399 67108864 32G Linux RAID /dev/sda4 80742400 923797503 843055104 402G Linux RAID /dev/sda5 923797504 976773134 52975631 25.3G Linux RAID /dev/sda6 1116160 13633535 12517376 6G Linux swap Partition table entries are not in disk order. root@edo /
# fdisk -l /dev/sdb Disk /dev/sdb: 465.78 GiB, 500107862016 bytes, 976773168 sectors Disk model: Crucial_CT500MX2 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: 0D638A13-AA1D-4131-8BB7-6DE88A59EDBA Device Start End Sectors Size Type /dev/sdb1 2048 1050623 1048576 512M Linux RAID /dev/sdb2 1050624 1116159 65536 32M BIOS boot /dev/sdb3 13633536 80742399 67108864 32G Linux RAID /dev/sdb4 80742400 923797503 843055104 402G Linux RAID /dev/sdb5 923797504 976773134 52975631 25.3G Linux RAID /dev/sdb6 1116160 13633535 12517376 6G Linux swap Partition table entries are not in disk order. root@edo / # mount proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) udev on /dev type devtmpfs (rw,nosuid,relatime,size=10240k,nr_inodes=976840,mode=755) devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) /dev/md3 on / type ext4 (rw,noatime) tmpfs on /run type tmpfs (rw,nodev,relatime,size=783424k,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime) configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup_root on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755) openrc on /sys/fs/cgroup/openrc type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/lib/rc/sh/cgroup-release-agent.sh,name=openrc) none on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate) cpuset on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cpu on /sys/fs/cgroup/cpu type cgroup (rw,nosuid,nodev,noexec,relatime,cpu) cpuacct on /sys/fs/cgroup/cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct) blkio on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) memory on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) devices on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) freezer on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) net_cls on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls) perf_event on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) net_prio on /sys/fs/cgroup/net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio) hugetlb on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) pids on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids) mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime) shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime) /dev/mapper/VG_DATA2_20150825-data2 on /data2 type ext4 (rw,noatime,stripe=256)
md4を150GBほどに縮小したい。
一旦、少し小さめに140GBにサイズを変える試み。
しかし、マウントしたままでは縮小できないと怒られる。
root@edo / # resize2fs /dev/md4 140G resize2fs 1.45.5 (07-Jan-2020) Filesystem at /dev/md4 is mounted on /data; on-line resizing required resize2fs: On-line shrinking not supported
そこで、マウントしているであろうプロセスを順次止める。
rc-updateで起動させているサービスの一覧を見て、一つずつ止める。
root@edo / # rc-update amavisd | default apache2 | default apcupsd | default apcupsd.powerfail | shutdown binfmt | boot bootmisc | boot bridge_forward | default cgroups | sysinit clamd | default cronie | default dcc | default devfs | sysinit dmesg | sysinit dovecot | default fsck | boot hostname | boot hwclock | boot iptables | default keymaps | boot killprocs | shutdown kmod-static-nodes | sysinit lm_sensors | default local | default nonetwork localmount | boot loopback | boot lvm | boot mcelog | default mdadm | default mdraid | boot modules | boot mount-ro | shutdown mtab | boot mysql | default named | default net.br0 | default net.lo | boot net.tap0 | default net.tap1 | default netmount | default ntpd | default opentmpfiles-dev | sysinit opentmpfiles-setup | boot postfix | default procfs | boot redis | default root | boot samba | default save-keymaps | boot save-termencoding | boot savecache | shutdown smartd | default snmpd | default spigot-server.fktn-spigot | default sshd | default swap | boot sysctl | boot sysfs | sysinit syslog-ng | default termencoding | boot udev | sysinit udev-trigger | sysinit urandom | boot root@edo / # /etc/init.d/apache2 stop * Stopping apache2 ... [ ok ] root@edo / # /etc/init.d/postfix stop * Stopping postfix ... [ ok ] root@edo / # /etc/init.d/amavisd stop * Stopping amavisd ... [ ok ] root@edo / # /etc/init.d/clamd stop * Stopping clamd ... [ ok ] * Stopping freshclam ... [ ok ] root@edo / # /etc/init.d/dcc stop * Stopping dccif ... [ ok ] root@edo / # /etc/init.d/dovecot stop * Stopping dovecot ... [ ok ] root@edo / # /etc/init.d/mysql stop * Stopping mysql ... [ ok ] root@edo / # /etc/init.d/named stop * Stopping named ... [ ok ] root@edo / # /etc/init.d/ntpd stop * Stopping ntpd ... [ ok ] root@edo / # /etc/init.d/samba stop * samba -> stop: smbd ... [ ok ] * samba -> stop: nmbd ... [ ok ] root@edo / # /etc/init.d/smartd stop * Stopping smartd ... [ ok ] root@edo / # /etc/init.d/snmp snmpd snmptrapd root@edo / # /etc/init.d/snmpd stop * Stopping snmpd ... [ ok ] root@edo / # /etc/init.d/spigot-server.fktn-spigot stop * Stopping Minecraft Spigot Server (World: fktn-spigot) ... [ ok ]
加えて、lsofコマンドを使って何がファイルを開いているか確認。
root@edo / # lsof | grep "/data/" bash 7504 user cwd DIR 9,4 4096 8524900 /data/home/user su 7507 root cwd DIR 9,4 4096 8524900 /data/home/user
ホームディレクトリがここにあったので、rootでの直接ログインに切り替える。
ファイルがすべて閉じられたので、アンマウントする。
ここまでで、md4はファイルシステムとしては130GB、RAIDとしては120GBになっている。
まずは、sdb4を障害ありとしてマーク。
続いて、sdb4をRAIDから切り離す。
root@edo / # lsof | grep "/data/" root@edo / # umount /data root@edo / # df -h Filesystem Size Used Avail Use% Mounted on udev 10M 0 10M 0% /dev /dev/md3 32G 27G 3.2G 90% / tmpfs 766M 2.3M 763M 1% /run cgroup_root 10M 0 10M 0% /sys/fs/cgroup shm 3.8G 0 3.8G 0% /dev/shm /dev/mapper/VG_DATA2_20150825-data2 40G 24G 14G 63% /data2
アンマウントしたので、再度リサイズを試みる。ディスクチェックを先にやるように言われたので、e2fsckを行う。
途中、修正の提案があったので受け入れておく(Yesにする)
root@edo / # e2fsck -f /dev/md4 e2fsck 1.45.5 (07-Jan-2020) Pass 1: Checking inodes, blocks, and sizes Inode 917507 extent tree (at level 2) could be narrower. Optimize<y>? yes Pass 1E: Optimizing extent trees Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/md4: ***** FILE SYSTEM WAS MODIFIED ***** /dev/md4: 1308396/9830400 files (0.6% non-contiguous), 20141759/39321600 blocks
ディスクのチェックが終わったので、再度リサイズを試みる。
成功したので、再度ディスクのチェックをしてみる。
修正が入ったが、こちらも実施して完了。
root@edo / # resize2fs /dev/md4 130G resize2fs 1.45.5 (07-Jan-2020) Resizing the filesystem on /dev/md4 to 34078720 (4k) blocks. The filesystem on /dev/md4 is now 34078720 (4k) blocks long. root@edo / # e2fsck -f /dev/md4 e2fsck 1.45.5 (07-Jan-2020) Pass 1: Checking inodes, blocks, and sizes Inode 917507 extent tree (at level 2) could be narrower. Optimize<y>? yes Inode 5638675 extent tree (at level 2) could be narrower. Optimize<y>? yes Pass 1E: Optimizing extent trees Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/md4: ***** FILE SYSTEM WAS MODIFIED ***** /dev/md4: 1308396/8519680 files (0.6% non-contiguous), 19977648/34078720 blocks root@edo / # e2fsck -f /dev/md4 e2fsck 1.45.5 (07-Jan-2020) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/md4: 1308396/8519680 files (0.6% non-contiguous), 19977648/34078720 blocks
この段階で、一旦マウントしてdfを見ると130GBになっていることがわかるはずだが、何かのプロセスが/dataにアクセスするとめんどくさいので確認はしない。
この130GBというのは、ファイルシステムとしては130GBになっているというだけで、MDとしてはもともとの400GBを握っているので、この容量を変更する。
まずは、現状。Array Sizeが400GBになっているのがわかる。
root@edo /
# mdadm -D /dev/md4
/dev/md4:
Version : 1.2
Creation Time : Sat Aug 1 16:49:39 2015
Raid Level : raid1
Array Size : 421396480 (401.88 GiB 431.51 GB)
Used Dev Size : 421396480 (401.88 GiB 431.51 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Sun Aug 2 11:58:56 2020
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : edo:/data (local to host edo)
UUID : 8f55590b:38f15e8a:4ea20fad:c34229d8
Events : 7298
Number Major Minor RaidDevice State
2 8 4 0 active sync /dev/sda4
1 8 20 1 active sync /dev/sdb4
mdadm --growで、-zオプションを使ってサイズを変更する。
ファイルシステムが130GBなので、それよりも小さい120GBにする。
root@edo / # mdadm --grow /dev/md4 -z 120G mdadm: component size of /dev/md4 has been set to 125829120K
変化を確認すると、120GBになっていることがわかる。
root@edo /
# mdadm -D /dev/md4
/dev/md4:
Version : 1.2
Creation Time : Sat Aug 1 16:49:39 2015
Raid Level : raid1
Array Size : 125829120 (120.00 GiB 128.85 GB)
Used Dev Size : 125829120 (120.00 GiB 128.85 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Sun Aug 2 11:59:32 2020
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : edo:/data (local to host edo)
UUID : 8f55590b:38f15e8a:4ea20fad:c34229d8
Events : 7299
Number Major Minor RaidDevice State
2 8 4 0 active sync /dev/sda4
1 8 20 1 active sync /dev/sdb4
ここまでで、md4はファイルシステムとしては130GB、RAIDとしては120GBになっている。
しかし、ディスク上のパーティションとしてはまだ400GBのままなので、次はパーティションを縮小する。
ここからはRAIDをいじるので、2本のディスクが正常に同期されていることを確認する。
同期中である旨の表示がないので、同期済みであることがわかる。
root@edo / # cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath] md127 : active raid0 sdb5[1] sda5[0] 52942848 blocks super 1.2 512k chunks md3 : active raid1 sda3[2] sdb3[3] 33553336 blocks super 1.2 [2/2] [UU] md4 : active raid1 sda4[2] sdb4[1] 125829120 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md1 : active raid1 sda1[0] sdb1[1] 524224 blocks [2/2] [UU] unused devices: <none>
まずは、sdb4を障害ありとしてマーク。
root@edo / # mdadm /dev/md4 --fail /dev/sdb4 mdadm: set /dev/sdb4 faulty in /dev/md4 root@edo / # cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath] md127 : active raid0 sdb5[1] sda5[0] 52942848 blocks super 1.2 512k chunks md3 : active raid1 sda3[2] sdb3[3] 33553336 blocks super 1.2 [2/2] [UU] md4 : active raid1 sda4[2] sdb4[1](F) 125829120 blocks super 1.2 [2/1] [U_] bitmap: 0/1 pages [0KB], 65536KB chunk md1 : active raid1 sda1[0] sdb1[1] 524224 blocks [2/2] [UU] unused devices: <none>
続いて、sdb4をRAIDから切り離す。
root@edo /
# mdadm /dev/md4 --remove /dev/sdb4
mdadm: hot removed /dev/sdb4 from /dev/md4
root@edo /
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath]
md127 : active raid0 sdb5[1] sda5[0]
52942848 blocks super 1.2 512k chunks
md3 : active raid1 sda3[2] sdb3[3]
33553336 blocks super 1.2 [2/2] [UU]
md4 : active raid1 sda4[2]
125829120 blocks super 1.2 [2/1] [U_]
bitmap: 0/1 pages [0KB], 65536KB chunk
md1 : active raid1 sda1[0] sdb1[1]
524224 blocks [2/2] [UU]
unused devices: <none>
md4のところからsdb4が消えており、RAIDから切り離されたことがわかる。次は、fdiskで/dev/sdb4のサイズを変更するのだが、拡張したいパーティションがあるので、別記事として拡張の話を記載する。
0 件のコメント:
新しいコメントは書き込めません。