kvm上的Linux虛擬機器使用virtio磁碟

2022-01-11 16:01:40 字數 2232 閱讀 8315

系統:centos6.6  64位

網上的文章比較少,怎麼將linux虛擬機器的磁碟改為使用virtio磁碟

因為centos6或以上系統已經包含了virtio驅動,所以不需要再執行下面語句載入核心模組

modprobe

virtio virtio_pci virtio_blk virtio_net

mkinitrd --with virtio --with virtio_pci --with virtio_blk --with virtio_net -f boot/initrd-$(uname -r).img $(uname -r)

這裡說一下具體方法

在物理機上先生成一台虛擬機器

1、安裝一台linux機器

qemu-img create -f qcow2 /data/kvmimg/gzxtest04.qcow2 30g

virt-install --name=gzxtest04 --ram 4096 --vcpus=8 --autostart --hvm \

--disk path=/data/kvmimg/gzxtest04.qcow2,size=60,format=qcow2 \

--cdrom /data/download/centos-6.6-x86_64-bin-***1.iso \

--graphics vnc,listen=0.0.0.0,port=5907 \

--network bridge=br0,model=e1000 --force --connect qemu:///system

2、啟動虛擬機器並安裝好centos6.6系統

3、安裝好系統之後,使用poweroff命令關閉虛擬機器

4、先備份虛擬機器的xml檔案

virsh dumpxml gzxtest04 > ~/gzxtest04.xml
5、修改虛擬機器的xml檔案

virsh edit gzxtest04
修改為其實就是刪除address type這一行,在driver name這一行新增io='native',dev='hda' 改為vda, bus='ide' 改為virtio

6、啟動虛擬機器

virsh start gzxtest04
7、在虛擬機器裡可以看到原來是hdx的分割槽已經全部變為vdx

8、在虛擬機器裡修改grub裝置對映表

sed -i  "

s/hda/vda

" /boot/grub/device.map

大功告成

背景知識

kvm虛擬機器磁碟的快取模式

1、預設,不指定快取模式的情況下,1.2版本qemu-kvm之前是writethough,1.2版本之後qemu-kvm, centos虛擬機器預設的快取模式就是none

2、writethough:使用o_dsync語義

3、writeback:不是o_dsync語義也不是o_direct語義,虛擬機器資料到達宿主機頁面快取page cache就給虛擬機器返回寫成功報告,頁面快取機制管理資料的合併寫入宿主機儲存裝置

4、none:使用o_direct語義,i/o直接在qemu-kvm使用者空間快取和宿主機儲存裝置之間發生,要求i/o方式設定為aio=native,不能使用宿主機的page cache,相當於直接訪問磁碟,有優越性能

5、unsafe:跟writeback一樣,但是不能發出刷盤指令,只有在虛擬機器被關閉時候才會將資料刷盤,不安全

6、directsync:同時使用o_dsync語義和o_direct語義

快取模式的資料一致性

writethough、none、directsync

能保證資料一致性,有一些檔案系統不相容none或directsync模式,這些檔案系統不支援o_direct語義

writeback

不能保證資料一致性,在資料報告寫完成和真正合併寫到儲存裝置上乙個時間視窗期,這種模式在宿主機故障時候會丟失資料,因為資料還存在在宿主機的page cache裡

unsafe

不保證資料一致性,忽略刷盤指令,只有在虛擬機器被關閉時候才會將資料刷盤,不安全

參考文章:

KVM複製虛擬機器,KVM轉殖虛擬機器

1.關閉要轉殖的虛擬機器 2.語法 virt clone o 原虛擬機器 n 新虛擬機器 f 新虛擬機器存放的路徑 virt clone o centos7.0 n xuegod110 f var lib libvirt images xuegod110.img qcow2格式 virt clone...

KVM虛擬機器

一 kvm虛擬機器簡介 kernel based virtual machine的簡稱,是乙個開源的 系統虛擬化模組,自linux 2.6.20之後整合在linux的各個主要發行版本中。它使用linux自身的排程器進行管理,所以相對於xen,其核心原始碼很少。kvm目前已成為學術界的主流vmm之一。...

linux平台kvm虛擬機器

虛擬機器技術就是用軟體技術模擬實際的計算機系統,比如最開始接觸的windows上通過vmware或者virtual安裝linux桌面版,其實虛擬機器分為全虛擬化和半虛擬化兩種,其中半虛擬化比較有代表性的xen,當然xen也提供全虛擬化。全虛擬化的有kvm等 當然還有商業的vmware virtual...