koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

ConoHa の VPS で動かしているMySQLのデータディレクトリを追加SSDに移動した

掲題の出来事の記録記事。

追加SSDを設けるまでの経緯

まぁまぁ紆余曲折しているので経緯も書いておく。

前提としてConoHaのVPSWebサービスを動かしていて、RDB(実はMySQLでなくMariaDBだが……CentOS系なので)もVPS上で動かしている。

CoonHaのVPSは標準のストレージは50GB、任意で追加のSSDをアタッチできる。

  • RDB運用とかしたくないし、マネージドDBを使おう
  • マネージドDB、スペックはともかく同時接続数が厳しくてリクエストを捌けない
  • 仕方ないのでVPSMariaDBを動かす
    • 50GBのディスクなんて使い切るわけないじゃん!!
  • Mackerel がDBサーバのファイルシステム容量消費90%超のクリティカルアラートを通知してくる
    • f:id:koudenpa:20190821121636p:plain
    • 50GBのディスク使い切りそうじゃん……
  • 仕方ないので追加SSDをアタッチしてRDBのデータをそちらに配置することにした

追加作業

ディスクの追加自体はConoHaのヘルプ( 追加SSDの設定方法|ConoHa VPSサポート )の通り(例は ext4 だがCentOS7系だったので xfs にした程度)に、データディレクトリの移動は適当にググって出てきたページを雑多に参考にして処理した。

段取りの整理と、ミスした時のリカバリポイントを検討したかったので、スプレッドシートにやることを列挙してから作業した。

f:id:koudenpa:20190821120141p:plain
列挙した段取り

平時の運用でのバックアップ取得前にDBへのアクセスを打ち切ることで、作業が完全に失敗した場合でもまぁまぁ簡単に復旧したかった。それに頼ることはなかったけれど、使わないに越したことはない。

出来事

データディレクトリの設定を起動スクリプトスクリプト/etc/init.d/mysql )内の datadir 変数値書き換えで行った。

さしあたってそれでデータディレクトリは切り替わったのだけれど、DBをアップデートしたら起動スクリプトも更新されてデフォルトに戻ってしまった。

設定ファイル( /etc/my.cnf でインクルードしていた /etc/my.cnf.d に配置されていた server.cnf )でデータディレクトリを指定するようにした。

これで大丈夫だろう。多分。

結果

4倍以上のディスク容量を得て色んな余裕が生まれた。

経過

追記。

f:id:koudenpa:20190903013137p:plain
この対応前後のIOPSのメトリクス

色んな余裕にはピークIO性能もありそうでよかった。