ディスク容量が足りているはずなのにIOエラーが出ます。

投稿者名: 
mgmg
ホストOS: 
Windows7
ゲストOS: 
Other Linux
本文: 

■環境

ゲストOS:CentOS6.4

VirtualBox:version 5.08

■問題

下記エラーが出て仮想マシンが強制的に一時停止にされてしまいます。

The I/O cache encountered an error while updating data in medium "ahci-0-0"

(rc=VERR_UNRESOLVED_ERROR). 

Make sure there is enough free space on the disk and that the disk is working properly.

Operation can be resumed afterwards.

ログにも以下のようなエラーが出ています。

 

ERROR [COM]: aRC=E_ACCESSDENIED (0x80070005) aIID={872da645-4a9b-1727-bee2-5585105b9eed} aComponent={ConsoleWrap} aText={The virtual machine is being powered down}, preserve=false aResultDetail=0

 

 

supR3HardenedScreenImage/LdrLoadDll: cached rc=Unknown Status -22900 (0xffffa68c) fImage=1 fProtect=0x0 fAccess=0x0 cHits=32 \Device\HarddiskVolume3\Program Files\CLaunch\ClHook.dll

mysqlへ大容量のインポートを行っている状態で起こるのとエラー文から、容量不足になっているのかと思いましたが、VirtualBox の [設定] > [ストレージ]を見てみると

SATAポート0 : VMDK形式 : 可変式 : 仮想的サイズ200GB : 実際のサイズ40GB

SATAポート1 : VMDK形式 : 可変式 : 仮想的サイズ1.2GB : 実際のサイズ20MB

と、まだまだ余裕があるはずです。

コマンドで情報を見ても特に異常らしいところが判りません。

> VBoxManage list hdds

UUID:           1a0c9807-fd16-4ec3-92dc-8e430ed81bbb

Parent UUID:    base

State:          created

Type:           normal (base)

Location:       C:\Users\admin\VirtualBox VMs\default_39459\box-disk1.vmdk

Storage format: VMDK

Capacity:       1226 MBytes

Encryption:     disabled

 

UUID:           c90c476c-5458-49e0-89bf-e961c638a639

Parent UUID:    base

State:          created

Type:           normal (base)

Location:       C:\Users\admin\VirtualBox VMs\default_39459\box-disk2.vmdk

Storage format: VMDK

Capacity:       204800 MBytes

Encryption:     disabled

 

エラーを解消する方法、あるいはエラーを回避できる方法はありませんでしょうか?

どうか、よろしくお願いいたします。

 こんにちは、こんばんは mgmg 様。  Aqualight です。

 この症状に付きましては、残念ですが現時点では何とも言えません。
ですが気になった点を書いてみます。

 なぜ VDI 形式ではなく VMDK 形式なのですか?

 VirtualBox でのデフォルトの仮想HDD形式は VDI 形式です。
恐らくですが、Vmware での運用を考慮したのでしょうか。
VMware デフォルトの VMDK 形式も VirtualBox で生成・運用は可能ですが、ユーティリティの利用に制限があります。
この形式の違いが原因だとすれば、それは VirtualBox のバグという事になります。

 私は Windows XP モードのプラットホームに VirtualBox と VMware を利用しています。
ですが仮想HDDの形式は MS指定の VHD 形式のままです。
そのため VirtualBox ではユーティリティが利用できず、仮想HDDのメンテナンス(サイズ縮小)に
VirtualBox ではないツールを利用しています。

 この事から VirtualBox では VMDK 形式では何らかの問題点が存在する可能性があるかもしれません。
この仮説が正しいなら VMDK 形式ではなく VDI 形式の仮想HDDで試してみるのはいかがでしょう?
そしてこれが回避方法になるのなら、間違いなく VirtualBox のバグである事の証明で、
OSS 開発者へのバグ報告が改善対策となると思います。

 申し訳ありませんが今のところ、これしか思いつきません。
全く回答にはなっていませんが、仮想HDDの形式変更は試す価値はあると思います。
仮にこれが VirtualBox のバグならソースコードから指摘出来れば良いのですが・・・

 

こんにちは、 Aqualightさま

まずは、ご助言ありがとうございます。

 

>なぜ VID 形式ではなく VMDK 形式なのですか?

vagrant で 拾った box がたまたまVMDKだったのでそのまま使用していました。

VMware用の形式だったのですね。

 

現在はVMDK形式を可変式から固定式へ変換してからインポートをすることでエラーが出ることなく動作しております。

まだ追加でDBをインポートしないといけないので、その際再びエラーが出るようであれば、vdi形式へ変更して試してみようと思います。

もしそれで問題なく動作するようであれば、バグ報告しようと思います。

(そもそも固定式にして直るのもバグなのでしょうか…?)

 

丁寧にご回答していただき、ありがとうございました。

 VirtualBox は OSS (オープン・ソース・ソフトウェア)ですが Oracle という社名を冠しています。
そして デフォルトの 仮想HDD 形式は VDI です。
Microsoft の 仮想HDD 形式は VHD で、 VMware の 仮想HDD 形式は VMDK です。

 他社製型式の仮想HDDがマウント可能なのはユーザーへの利便性供与が目的で、
だからと言って、その動作までは保証されていません。
と言うのも、他社形式を扱う機能のメンテナンスにもコストが掛かるからです。

 製品として保証可能なのは唯一自社製品のみで、この場合は他社製品まで保証範囲を拡大する事になります。
このコストは営利企業にとって無駄でしかありません。
仮に仮想HDD形式が世界的に統一されれば企業としてのデメリットは無くなりますが現状はそうではありません。
『自社製品については保証可能だが、他社規格品については利用可能なだけで保証まではしないよ。』
というのが一般的な企業スタンスという、実に経済的な理由から起こる現象と言えそうです。

 技術的には可能であっても、法的、経済的な面に影響された結果が この現象であれば「仕方ない」という他
ありませんよね。
せめて デファクト・スタンダードと呼べる仮想HDD形式が成立すると良いですね。

 

 

コメントを追加

Filtered HTML

  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 使用できるHTMLタグ: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <br />
  • 行と段落は自動的に折り返されます。

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
スパム投稿防止の為以下のテキストを入力してください
Image CAPTCHA
Enter the characters shown in the image.