Vagrant上でubuntu/xenial32, ubuntu/xenial64が動作しない(続)
前回の記事の続き.trustyと同レベルには解決した.
症状(再掲)
Vagrantのubuntu/xenial64(あるいはubuntu/xenial32)を起動すると
- 起動後まもなく,root filesystemがread-onlyになる
- 動いている間も動作が遅い
ログファイルを見ると,次のようなメッセージが得られた.
- sd 2:0:0:0: [sda] tag#7 Medium access timeout failure. Offlining disk!
- sd 2:0:0:0: rejecting I/O to offline device
- Buffer I/O error on device
- Buffer I/O error on device sda1, logical block 249088
ubuntu/trusty64などではこの症状は発生しない.
原因
ディスクコントローラの「ホストのIOキャッシュを使う」が無効になっているためである.
ホストのIOキャッシュを無効にするとストレージとの通信が高確率で失敗するということになるため,やはりVirtualBoxにはバグがあると考えられるが,vagrant上でubuntu/xenial64を安定して利用するという目的はとりあえずこれで達成できる.
解決策
起動時の設定でhostiocacheを有効にする.Vagrantfileに以下の設定を追加する.
config.vm.provider "virtualbox" do |vb| vb.customize ["storagectl", :id, "--name", "SCSI Controller", "--hostiocache", "on"] end