CentOS7のディスク容量を拡張する
CentOS7 minimalをインストールしました。最近のVPSやクラウドではあまり意識しなかったので忘れていましたが、CentOSではデフォルトでhomeディレクトリに結構容量がさかれています。/root/直下は50GBとなっています。これを変えていきたいと思います。
YouTube
作業を動画にしてみました。もし動画の方がわかりやすいとか見てみたいなどあったら是非みてください
現在の状況
[root@localhost ~]# df -Th ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.9G 18M 1.8G 1% /dev/shm tmpfs tmpfs 1.9G 9.8M 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root xfs 50G 7.1G 43G 15% / /dev/sda1 xfs 1014M 169M 846M 17% /boot /dev/mapper/centos-home xfs 411G 33M 411G 1% /home tmpfs tmpfs 371M 52K 371M 1% /run/user/0 /dev/sdb1 vfat 3.8G 1.1G 2.8G 28% /run/media/root/CENTOS 7 X8 [root@localhost ~]#
centos-rootには50GBで、centos-homeに411GBとなっています。これを変えていきたいなと思っています
homeは50GBで残りはrootにしたい
homeディレクトリは個人的にそんなに使わないので、正直50GBあればいいかなと思いました
事前にhomeディレクトリを持たないアカウントを作成
通常ユーザーアカウントを作成すると、homeディレクトリが作成されます。今回homeを縮小してrootを拡張するのでhomeディレクトリを持たないアカウントを作成してそのアカウントでやっていきます
sudo権限も持たせたいのでwheelグループにも所属させます
実際に作業していく
というわけで、実際に作業をしてきたいと思います。
workというディレクトリを作成
まずは新しいユーザーのために「work」ディレクトリを作成します
[root@localhost ~]# mkdir /work
resizeユーザーの作成
resizeというユーザーを作成します。ホームディレクトリは事前に作成したworkになります
[root@localhost ~]# useradd -d /work/resize -m -G wheel -p resize resize [root@localhost ~]# passwd resize ユーザー resize のパスワードを変更。 新しいパスワード: よくないパスワード: このパスワードは 8 未満の文字列です。 新しいパスワードを再入力してください: passwd: すべての認証トークンが正しく更新できました。
パスワードを適当に作ります。
xfsdumpをインストール
homeディレクトリをdumpするためにxfsdumpをインストールします。もしかしたら既に入っているかも知れません
[root@localhost /]# yum install xfsdump 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.nara.wide.ad.jp * epel: d2lzkl7pfhq30w.cloudfront.net * extras: ftp.nara.wide.ad.jp * updates: ftp.nara.wide.ad.jp パッケージ xfsdump-3.1.7-1.el7.x86_64 はインストール済みか最新バージョンです 何もしません [root@localhost /]#
入ってますね。では次にいきます
fuserコマンドが使えるようにする
fuserコマンドは、homeパーティションを利用しているプロセスをみつけるために使います。psmisc パッケージをインストールすることで利用できるようになります
[root@localhost ~]# yum install psmisc 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * epel: ftp.riken.jp * extras: ftp.tsukuba.wide.ad.jp * nux-dextop: mirror.li.nux.ro * updates: ftp.tsukuba.wide.ad.jp パッケージ psmisc-22.20-16.el7.x86_64 はインストール済みか最新バージョンです 何もしません
インストール済みでした
homeディレクトリのバックアップ
homeディレクトリをバックアップします。ここではresizeユーザーで作業していきます
ユーザー切り替え
[root@localhost ~]# su resize
バックアップ
[resize@localhost root]$ cd /work/ [resize@localhost work]$ sudo xfsdump -J -L home -M deive -f home.dump /home あなたはシステム管理者から通常の講習を受けたはずです。 これは通常、以下の3点に要約されます: #1) 他人のプライバシーを尊重すること。 #2) タイプする前に考えること。 #3) 大いなる力には大いなる責任が伴うこと。 [sudo] resize のパスワード: xfsdump: using file dump (drive_simple) strategy xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control xfsdump: level 0 dump of localhost.localdomain:/home xfsdump: dump date: Mon Sep 14 10:42:58 2020 xfsdump: session id: b5bf7b32-bc6c-4322-adb5-8cee9b62b82b xfsdump: session label: "home" xfsdump: ino map phase 1: constructing initial dump list xfsdump: ino map phase 2: skipping (no pruning necessary) xfsdump: ino map phase 3: skipping (only one dump stream) xfsdump: ino map construction complete xfsdump: estimated dump size: 20800 bytes xfsdump: creating dump session media file 0 (media 0, file 0) xfsdump: dumping ino map xfsdump: dumping directories xfsdump: dumping non-directory files xfsdump: ending media file xfsdump: media file size 21352 bytes xfsdump: dump size (non-dir files) : 0 bytes xfsdump: dump complete: 0 seconds elapsed xfsdump: Dump Summary: xfsdump: stream 0 /work/home.dump OK (success) xfsdump: Dump Status: SUCCESS
dumpファイルは/workの中に作られます。xfsdump: Dump Status: SUCCESS とでたら成功です。
homeディレクトリをアンマウント
バックアップが終わったらhomeディレクトリをアンマウントします
まずはhomeがマウントされているか確認します
[root@localhost ~]# df -Th ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.9G 18M 1.8G 1% /dev/shm tmpfs tmpfs 1.9G 9.8M 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root xfs 50G 7.1G 43G 15% / /dev/sda1 xfs 1014M 169M 846M 17% /boot /dev/mapper/centos-home xfs 411G 33M 411G 1% /home tmpfs tmpfs 371M 52K 371M 1% /run/user/0 /dev/sdb1 vfat 3.8G 1.1G 2.8G 28% /run/media/root/CENTOS 7 X8
ちゃんといます。
[resize@localhost ~]$ sudo umount /dev/mapper/centos-home [sudo] password for resize:
アンマウントしました。アンマウントされているか確認します
[root@localhost ~]# df -Th ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.9G 18M 1.8G 1% /dev/shm tmpfs tmpfs 1.9G 9.8M 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root xfs 50G 7.1G 43G 15% / /dev/sda1 xfs 1014M 169M 846M 17% /boot tmpfs tmpfs 371M 52K 371M 1% /run/user/0 /dev/sdb1 vfat 3.8G 1.1G 2.8G 28% /run/media/root/CENTOS 7 X8
/homeの行がなくなりました。これでアンマウントは成功となります
homeのボリュームの削除
アンマウントしたので、ディスク自体の削除をします。WindowsでいうとのこDドライブの完全削除とか、そんな感じです
[resize@localhost ~]$ sudo lvchange -an /dev/mapper/centos-home [resize@localhost ~]$ sudo lvremove /dev/mapper/centos-home Logical volume "home" successfully removed
Logical volume "home" successfully removed と表示されれば成功です
homeの再作成・マウント
消したhomeディレクトリですが、作成をし直します
50GBのhomeを作成
homeディクレトリは50GBにしたいので50GB作成します
sudo lvcreate -L 50G -n home centos
ファイルシステムの作成
次に、ファイルシステムを作成します
[resize@localhost ~]$ sudo mkfs.xfs /dev/mapper/centos-home meta-data=/dev/mapper/centos-home isize=256 agcount=4, agsize=6553600 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=26214400, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal log bsize=4096 blocks=12800, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [resize@localhost ~]$
マウント
homeディレクトリをマウントします
[resize@localhost ~]$ sudo mount /dev/mapper/centos-home [resize@localhost work]$ df -Th ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.9G 18M 1.8G 1% /dev/shm tmpfs tmpfs 1.9G 9.8M 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root xfs 50G 7.1G 43G 15% / /dev/sda1 xfs 1014M 169M 846M 17% /boot tmpfs tmpfs 371M 52K 371M 1% /run/user/0 /dev/mapper/centos-home xfs 50G 33M 50G 1% /home [resize@localhost work]$
マウント成功しました
rootの拡張
リストアの前にrootの拡張をしていきます
残りの部分をrootに割り当てる
rootの使用領域を増やすため、残りの部分をrootに割り振ります
[resize@localhost ~]$ sudo lvextend -l +100%FREE /dev/centos/root Logical volume root successfully resized.
Logical volume root successfully resized. とでれば成功です
ファイルシステムを拡張
ファイルシステムの拡張をします
[resize@localhost work]$ sudo xfs_growfs /dev/mapper/centos-root meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3276800 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=13107200, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=6400, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 13107200 to 107710464
確認
dfコマンドで確認をしてみます
[resize@localhost work]$ df -TH ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev tmpfs tmpfs 2.0G 19M 2.0G 1% /dev/shm tmpfs tmpfs 2.0G 11M 2.0G 1% /run tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/mapper/centos-root xfs 442G 7.6G 434G 2% / /dev/sda1 xfs 1.1G 177M 887M 17% /boot tmpfs tmpfs 389M 54k 389M 1% /run/user/0 /dev/mapper/centos-home xfs 54G 34M 54G 1% /home
リストア
マウントしたら、今度はhomeディレクトリをリストアします
[resize@localhost ~]$ cd /work/ [resize@localhost work]$ sudo xfsrestore -J -L home -f home.dump /home xfsrestore: using file dump (drive_simple) strategy xfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and control xfsrestore: searching media for dump xfsrestore: examining media file 0 xfsrestore: found dump matching specified label: xfsrestore: hostname: localhost.localdomain xfsrestore: mount point: /home xfsrestore: volume: /dev/mapper/centos-home xfsrestore: session time: Wed Nov 23 18:46:10 2016 xfsrestore: level: 0 xfsrestore: session label: "home" xfsrestore: media label: "drive" xfsrestore: file system id: 6e53a8ec-c130-444a-bcfb-e139ef2d25e0 xfsrestore: session id: 33e8afd3-c614-4c8b-a795-5a0db3b3eefc xfsrestore: media id: 65f32fe1-6ce5-4bb3-ae85-d18e85d28195 xfsrestore: searching media for directory dump xfsrestore: reading directories xfsrestore: 186 directories and 945 entries processed xfsrestore: directory post-processing xfsrestore: restoring non-directory files xfsrestore: restore complete: 0 seconds elapsed xfsrestore: Restore Summary: xfsrestore: stream 0 /work/home.dump OK (success) xfsrestore: Restore Status: SUCCESS [resize@localhost work]$
色々ログがでてきますが、xfsrestore: Restore Status: SUCCESS とでたらOKです
まとめ
無事に成功してよかったです。
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS