hack のためのネタ帳, etc,,,

公式ページ等

参考になるページ等

/etc/libvirt/qemu/vmname.xml を見て以下の部分に discard='unmap' 入れとけとのことだけど、
/sys/block/vda/queue/discard_max_bytes 見ても 0 のままなので上手く行ってない模様。
virtio を virtio-scsi に書き換えても駄目みたい。おかしいなぁ、controller 作らないと駄目かな?
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' discard='unmap'/>
      <source file='/var/lib/libvirt/images/vdiskname.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
参考:
追記: 2015-04-19
やっぱり virtio-scsi にするのがポイントだった模様。
Ubuntu 14.04.2 LTS 上の virt-manager から「VirtIO Disk 1」→「詳細なオプション」→「ディスクバス」を「Virtio」から「SCSI」に変更すると、
「VirtIO Disk 1」が「SCSI Disk 1」となり、
/etc/libvirt/qemu/vmname.xml 上での接続も virtio-scsi になった。
また、起動後のデバイスも /dev/vda が /dev/sda になると共に、
/etc/libvirt/qemu/vmname.xml 上で disk driver に discard="unmap" を追加することにより
/sys/block/sda/queue/discard_max_bytes にも 0 でない値が表示されるようになった。

ただし、これ、Linux だとあまり苦労はないんだけど、Windows だとインストール時に追加でドライバーが要る他、インストール後にすると起動ディスクを見失って再起動出来なくなるので結構面倒臭い。
加えて 2015-04-19 現在、Windows 10 Technical Preview で使えるコンパイル済みの virtio-scsi 用 driver が見当たらない状況。 から辿れる に Windows 8 用のドライバは入っているのだが、少なくともこれは 10 TP に転用出来なかった。

追記: 2017-12-10
disk の bus が scsi じゃなくて virtio になってると、仮想マシン上では上記の virtio-scsi 経由ではなく pci 直付けのストレージデバイス(virtio)として見える。
しかし virtio は discard 非対応なんだそうで、2017-12-10 現在でも virtio-blk の todo に挙がってる状態。
bus を scsi にしといて virtio-scsi 経由で接続してやる必要があった。orz

参考:
標準だと母艦の virbr0 が 192.168.122.1 になってて dnsmasq で 192.168.122.1-254 の範囲で VM に DHCP を提供していると思う。
詳細は /var/lib/libvirt/dnsmasq/default.conf を参照。
ここで母艦上の環境において、払い出した IP と VM の hostname で DNS を解決したい。
やり方は簡単で、仮想ネットワーク'default':NAT に DHCP 提供している dnsmasq、つまり 192.168.122.1 を DNS サーバーとして名前を解決すれば良い。
例えば nslookup だと以下のようにする。
nslookup vmname 192.168.122.1
従って、
母艦内の cache 用 dnsmasq を走らせて、
これ(127.0.0.1) を resolv.conf から参照するようにしておくとともに、以下のような設定を追加しておくと良い。

/etc/dnsmasq.d/virbr0

server=192.168.122.1@virbr0

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます