kengo700のナレッジベース

誰かの役に立つと思う情報を発信するブログ

GitLabが動かなくなったときの対応メモ(状態確認コマンドと論理ボリュームのサイズ変更)

研究室のGitLabが動かなくなったため、解決した方法をメモしておきます。

※アイキャッチ画像のクレジット:GitLab.com / CC BY-NC-SA 4.0

はじめに

研究室でテスト運用中のGitLabが、昨日から動かなくなっていたため対応しました。解決した方法をメモしておきます。

原因は論理ボリューム(パーティション)の容量不足でした。論理ボリュームのサイズを変更したところ解決しました。

※ 私はサーバーなどに関しての素人なので、参考にする際は自己責任でお願いします。また間違いがあればご指摘いただけると助かります。

※ 使用しているGitLabなどのバージョンは下記の通りです。

種類 バージョン
OS CentOS 6.5
GitLab GitLab 7.5.2

状態の確認

不具合の状況は、ブラウザからGitLabにアクセスしようとするとタイムアウトになっていた。

f:id:kengo700:20160403232423p:plain

コマンドプロンプトからpingコマンドを実行すると応答があるので、サーバーにはアクセスできる状態

ping 「GitLabサーバーのIPアドレス」

Tera TermでGitLabのサーバーにアクセスしsuコマンドでrootアカウントに切り替え

下記コマンドで再起動しても状況は変わらず

reboot

Tera TermでGitLabのサーバーにアクセスし、下記コマンドでGitLabの状態を確認したところ、postgresql(データベース)が停止していることを確認(再起動前に確認すべきだったかも)

gitlab-ctl status

f:id:kengo700:20160403232823p:plain

データベースを弄る前にバックアップをファイルサーバーにコピーするため、WinSCPでGitLabサーバーにアクセスしたところ、最近のバックアップが正常に取れていないことを確認

f:id:kengo700:20160403233337p:plain

下記コマンドでディスク容量を確認したところ、50GBのlv_rootの使用率が100%になっていた

df -h

f:id:kengo700:20160403233800p:plain

lv_rootが50GB、lv_homeが852GBになっているので、次節の方法でlv_homeのサイズを減らし、lv_rootを増やしてみることに

論理ボリュームのサイズ変更方法

下記コマンドでGitLabのサービスを停止

gitlab-ctl stop

下記コマンドで/homeをアンマウント

umount /home

※一度「デバイスがビジーです」というメッセージが出てアンマウントできませんでしたが、前述したWinSCPで接続したままだったためでした。WinSCPを閉じたらアンマウントできました。

下記コマンドでファイルシステムチェック

fsck.ext4 -f /dev/mapper/vg_「サーバーの名前」-lv_home

下記コマンドで/homeファイルシステムのサイズを52GBに縮小

resize2fs /dev/mapper/vg_「サーバーの名前」-lv_home 52G

下記コマンドでlv_homeの論理ボリュームのサイズを52GBに縮小(途中でyを入力してEnter)

lvreduce -L 52G /dev/mapper/vg_「サーバーの名前」t-lv_home

下記コマンドでマウント

mount -t ext4 /dev/mapper/vg_「サーバーの名前」-lv_home /home

下記コマンドで縮小していることを確認

df -Th

f:id:kengo700:20160403235218p:plain

下記コマンドでlv_rootの論理ボリュームのサイズを850GBに拡大

lvextend -L 850G /dev/mapper/vg_「サーバーの名前」-lv_root

下記コマンドで/ファイルシステムのサイズを拡大(結構時間がかかりました)

resize2fs /dev/mapper/vg_「サーバーの名前」-lv_root

下記コマンドで拡大していることを確認

df -Th

f:id:kengo700:20160403235505p:plain

下記コマンドでGitLabを起動したところ、ブラウザからアクセスすることができました

gitlab-ctl start

参考資料

おわりに

しっかりと勉強せずにサーバー構築すると、後から苦労しますね

今回まで「論理ボリュームってなに?」という状態でした (;´д`)ゞ