Vagrant + CentOS7+ kdump でVMのメモリサイズが小さいとkdumpの起動に失敗する

別にVagrantに限った話ではないけど。
Vagrantでprovisionする時にkdumpを起動しているのだが、VMのメモリサイズが1GBになっているようなVMだとそれが失敗していた。
原因と対策について整理しておく。

発生した問題

例えば、以下のようなVagrantfileでVMを起動するとする。

 

手元に作る環境なので、productionとは異なりメモリサイズを小さくしておく、ということは十分に有り得る。
この時、vagrant upすると以下のようになりprovisioningに失敗する。

 

原因

このログからではよくわからないので、VMにログインして状況を確認する。

 

起動に失敗したkdump.serviceのstatusを確認すると、「No memory reserved for crash kernel」と表示されている。
これは、メモリをkdump用に割り当てたいが、VMのメモリサイズが不足していて割り当てられないというエラーのようである。

このページの手順2.1によると、割り当てるメモリの量は/etc/default/grubを見れば分かる。実際に見てみるとcrashkernel=autoとなっている。autoの場合は予約するメモリサイズが自動的に設定される。どういう値になるかはこのページに書かれており、また、自動設定に必要な最小メモリサイズの情報がこのページに書かれている。後者を見ると、x86_64の場合は2GB必要であるということが分かる。つまり、上記Vagrantfileでは1GBしかメモリを用意していなかったためkdump用にメモリを確保しておらず、kdumpの起動に失敗したのである。

解決方法

解決方法として、以下が挙げられる。

  1. VMのメモリサイズを2GB以上にする
  2. crashkernelの値を変更し、固定値にする

てっとり早いのはメモリサイズ変更だが、kdumpのためだけに2倍のメモリを使うというのはなんだかしゃくである。なので、crashkernelの値を変更して、固定値にする方法を採用する。

手動で変更する場合はここの手順通りに作業を進め、crashkernelの値を128Mにして再起動すればよい。しかし、Vagrantの場合再起動した後にkdumpを起動する必要があるため、ややこしい。

そこで、aidanns/vagrant-reloadを使う。これはprovisioningの途中でVMを再起動して、その後のprovisioningをやってくれるというvagrantのプラグイン。Vagrantfileを以下のように修正してやる。

 

vagrant upするとちゃんとVMが再起動し、sshで再度接続して次のprovisioningに進んでいることがわかる。

provisioningする度にVMを再起動するので時間が伸びるのがデメリット。

近況:GMOペパボに入社した

 8月からGMOペパボで働いています。ちょうど1週間。一昨日に歓迎会を開いてもらいました。ありがたいことです。そういや社内で使うあだ名考えてくれって言われてたのを忘れてた。仕事としては、ここしばらくサーバサイド〜インフラあたりを見てたけど、インフラをガッツリやる感じです。テックカンファレンスが入社のきっかけになるとはまさか思わなかった。すごく楽しいイベントなので行くといいです。

5日間働いておもしろいなと思ったのは、slackやGitHubのような開発の基盤ツールが使ったことのあるものだと新しい環境でもスムーズに仕事を始められるな、という事。つまづく所が減るのがすごくよいです。

後、仕事の進め方も変わりそうなので身体と頭を慣れさせないとな、というのが目下の課題。

渋谷はこれまであまり行ったことがなくて土地勘がないのでよい店を探索中。とりあえず渋谷のうどん屋はいろいろ行ってみるつもり。

Surface Pro 4

勉強会の発表用にモバイルマシンが必要になったので、Windowsマシンも使ってキャッチアップしておくか、という気持ちで購入した。スペックはCPUはi5、メモリ8GB、ストレージ256GB。最低スペックのものを使ってみようかな、とも思ってたけどやめておいた。

よいところ

  • タッチパネル便利。macbookでも画面をタッチしそうになる。
  • OneNoteとSurfacePenの組合せはメモ用途としては便利
  • ソファーでゴロゴロしながらネットサーフィンするのには便利

いまいちなところ

  • SurfacePenのトップボタンはBTで繋っていないと反応しないっぽくて使いづらい。
  • ターミナルが使いにくい
    • vagrantいれて勉強会でデモすしようとしてたけど結構面倒だった
  • タブレットとして使うには大きい
    • 伊勢旅行に持っていったけど大きすぎる
  • 電源ケーブルがいけてない
    • 持ち運ばないのが前提?

 

MacOSに慣れてるならmacbookを買う方がいいんじゃないかという気はする。8月頭にWindows10の大規模アップデートがあるはずなのでその後にもうちょい触ろうかな。

 

 

イヤホンのケーブルを交換した

今使っているのはaudio-technicsのATH-IM02。純正のケーブルのワイヤーが折れて耳にうまくかからなくなったのでケーブルを交換してみた。交換したケーブルも少し使ったら調子が悪くなって再度買い替えたので、記録しておく。

最初に買ったケーブルはEffect Audio StudioのNew Crystalというモデル。プラグ部分でケーブルが曲っていて耳にかけやすい。しかし、ヘッドフォンジャック部分が大きく、そのままスマホに刺してポケットにいれるような使い方をしている内にジャックの内部で断線?したのか右側から時々音が聞こえなくなってしまった。

cof

がんばれば直せそうだけど道具もないしイヤホンが使えないのは不便、ということで別のケーブルを注文。NOBUNAGA Labsという所のケーブルで、TR-IM3。このケーブルはジャック部分がL字型で、小型なのでiPhoneに直刺ししてポケットに入れていても大丈夫そう。しかし、New Crystalとは違ってプラグ部分が曲っていないので、耳にかけにくい。ふとした拍子に外れてしまう。眼鏡と耳に挟めばそこそこ安定する事に気づいたのでしばらくは使ってみる予定。

cof

どちらも純正のケーブルより軽いので、耳にかけやすくてジャックが小型のものを探すのがよさそう。もしくは、New Crystalとスマホの間に短いケーブルを挟んで負荷がかからないようにするというのもありか。