FJcloud実践
増設ディスクでFJcloud-Vのローカルディスク容量枯渇を解決する方法
この記事は、ニフクラブログで2018-12-17に公開された記事を移転したものです。
こんにちは、FJcloud-V(旧ニフクラ)テクニカルアカウントチームです。
FJcloud-V(旧ニフクラ)は、システムディスク(ローカルディスク)の容量を途中で増やすことができない仕様であり、長期間使用しているとデータが増えてシステム領域が枯渇する場合があります。
本記事では、その対処方法としてシステム領域の一部を、増設ディスクに移動する手順についてご紹介します。
前提条件
本ブログは、以下の前提知識がある方を想定しています。
- FJcloud-V(旧ニフクラ)の基本的なコントロールパネルの操作、サービスを利用する知識。(サーバー作成、ネットワーク構築など)
- 基本的なサーバーOSを構築する知識
検証概要
以下の構成で検証を実施しています。
利用リソース
今回の検証を実施するにあたり、利用したFJcloud-V(旧ニフクラ)のリソース情報に関して以下に記載します。
※各リソースのアクセス制限に関しては、FJcloud-V(旧ニフクラ)のファイアウォール等を用いて適切に設定の上実施しています。
検証内容
CentOSのインストールメディア(ISO)を使用して、インストーラレスキューモードで起動し、システム領域を増設ディスクに移動/マウント設定、設定後の確認までの検証内容を記載します。
OS起動時にシステム領域を移動させると、不具合が起こる可能性があるため、今回の検証ではインストーラレスキューモードで実施しています。
また、今回はログファイル等で肥大化しやすい「/var」を対象に移動させています。
① 増設ディスクの設定
クラウドユーザーガイド(追加したディスクの設定方法(マウント手順):Linux系OSの場合)
※本検証では増設ディスクのパーティションを「/dev/sdb1」としています。
※ここでは自動マウント「/etc/fstab」の設定は行いません。
② ISOイメージアップロード
下記アーカイブURLを「ISOイメージ取得先URL」に直接入力して、アップロードします。
「http://archive.kernel.org/centos-vault/7.4.1708/isos/x86_64/CentOS-7-x86_64-NetInstall-1708.iso」
※上記URLは使用できなくなる恐れがあります。
※ISOイメージ機能には制限事項があります。詳細はISOイメージの仕様・機能を参照して下さい。
③ ISOイメージの設定
ISOイメージをサーバーに設定します。
④ BIOSの起動順序の変更
「コンソール起動」ボタンをクリックします。
ダイアログが表示され「ブラウザから接続する」をクリックするとコンソールが起動されます。
「サーバー再起動」ボタンをクリックします。
起動オプションの「BIOS画面で停止する」にチェックを入れて「OK」をクリックします。
BIOSの起動画面が表示されるので「Boot」タブに移動し「CD-ROM Drive」を一番上に移動します。
「Exit」タブに移動し「Exit Saving Changes」を選択し「Yes」をクリックします。
⑤ インストーラレスキューモードの起動
ISOインストールメディアが起動したら、「Troubleshooting」→「Rescue a CentOS system」を選択後、「1」を入力し「Please press \<return> to get a shell.」で止まるのでEnterキーを押下します。
⑥ システム領域(/var)を増設ディスクに移動
インストーラレスキューモード環境のルートパーティションを、ファイルシステムのルートパーティションに変更します。
sh-4.2# chroot /mnt/sysimage/
システム領域(/var)の移動前に、dfコマンドで現在のディスク使用量を確認します。
bash-4.2# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 22G 6.3G 78% /
devtmpfs 471M 0 471M 0% /dev
tmpfs 495M 0 495M 0% /dev/shm
tmpfs 495M 13M 482M 3% /run
/dev/sda1 509M 118M 391M 24% /boot
増設ディスク(/dev/sdb1)を、/mntにマウントします。
bash-4.2# mount /dev/sdb1 /mnt
/varの中身を、隠しファイルも含めて/mntへコピーします。
※コピー元ファイルの部分に"/var/*(アスタリスク)"で入力しても、".(ドット)"で始まる隠しファイルはコピーされません。
bash-4.2# cp -rpa /var/. /mnt
コピー元(/var)とコピー先(/mnt)で、ディレクト内の使用サイズとファイル数を確認し、差分がないことを確認します。
bash-4.2# du -sb /var /mnt
21550710039 /var
21550710039 /mnt
bash-4.2# find /var -type f | wc -l
5763
bash-4.2# find /mnt -type f | wc -l
5763
念のため、移動対象のディレクトリ(/var)をリネームしておきます。
また、新たにマウント用のディレクトリを作成し、パーミッションと所有者が同じであることを確認します。
※違う場合は適切に設定してください。
bash-4.2# mv /var /var_org
bash-4.2# mkdir /var
bash-4.2# ls -ld /var*
drwxr-xr-x. 2 root root 6 Dec 6 10:09 /var
drwxr-xr-x. 20 root root 4096 Dec 6 09:50 /var_org
⑦ マウント設定
増設ディスク(/dev/sdb1)が/varにマウントされるよう、/etc/fstabを編集します。
bash-4.2# vi /etc/fstab
※最終行に下記を追記
/dev/sdb1 /var xfs defaults 0 0
「exit」と入力し、インストーラーレスキューモードを終了します。
インストーラーレスキューモード終了後、システムの再起動が開始されます。
bash-4.2# exit
sh-4.2# exit
「Troubleshooting」→「Boot from local drive」を選択し、システムディスク(ローカルディスク)から起動させます。
※再びインストーラーレスキューモードが起動されないよう、ISOイメージをサーバーから解除してください。
※BIOSの起動順序の戻す作業はここでは割愛させていただきます。
⑧ 設定後の確認
OS起動後にloggerコマンドで、/var/log/messagesにログが出力されることを確認します。
# logger test
# tail /var/log/messages
<中略>
Nov 21 17:11:27 <ホスト名> root: test
特に問題がなければ、リネームしていたディレクトリ(/var_org)を削除します。
# ls -ld /var*
drwxr-xr-x. 20 root root 4096 Dec 6 09:50 /var
drwxr-xr-x. 20 root root 4096 Dec 6 09:50 /var_org
# rm -rf /var_org
# ls -ld /var*
drwxr-xr-x. 20 root root 4096 Dec 6 09:50 /var
dfコマンドで、システム領域の使用量を確認します。
ここでは、/varを増設ディスクに移動する前後のdfコマンドを比較しています。
<移動前>
bash-4.2# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 22G 6.3G ★78% /
devtmpfs 471M 0 471M 0% /dev
tmpfs 495M 0 495M 0% /dev/shm
tmpfs 495M 13M 482M 3% /run
/dev/sda1 509M 118M 391M 24% /boot
<移動後>
/の使用量が減っている事がわかります。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 1.1G 27G ★5% /
devtmpfs 471M 0 471M 0% /dev
tmpfs 495M 0 495M 0% /dev/shm
tmpfs 495M 13M 482M 3% /run
/dev/sda1 509M 118M 391M 24% /boot
/dev/sdb1 100G 21G 80G 21% /var
これで、本検証は終了となります。
注意事項について
- 増設ディスクの故障やディスクのデタッチでシステムが止まる恐れがあります。
- 100GB以上の増設ディスクの場合は、カスタマイズイメージによるバックアップが不可になります。
- 移動した領域の性能(読み書き)に関しては、増設ディスクのタイプによって変わります。
- 設定ファイル(/etc/fstab)は正しく記載して下さい。誤って記載してしまうとサーバーが起動しない恐れがあります。
- 本手順については検証結果の1つであり、利用される際は事前にそれぞれの環境で十分に検証を行ってください。
まとめ
本検証では、OSを停止した状態(インストーラレスキューモード)で実施しましたが、「/home」のようなデータ領域では、シングルユーザーモードで実施することも出来そうです。
インストーラレスキューモードで実施するには少し手間となりますが、作業の流れ自体はわかりやすく、増設ディスクは100GB~1TBまで選べるため、システムディスクの枯渇問題の解決に有用だと感じました。
これからサーバーを作成する際、将来的にシステムディスク使用量の増加が予想される場合や、現在システム領域が枯渇している場合の解決策の一つとしていかがでしょうか。