在IDE上使用LVM迁移CentOS VM以使用VirtIO运行

我试图迁移现有的IDE使用,基于LVM的CentOS 5.2虚拟机使用virtio。 当系统找不到任何卷组时,症状是引导时内核崩溃。 有谁知道如何使这项工作?

我创build了一个不使用LVM的vm安装,并能够将其切换到使用virtio。 这是我在使用LVM时所处的位置:

脚步:

  1. 在ide磁盘上安装使用LVM的kvm中的CentOS 5.2。
  2. 用virtio支持安装一个更新的内核,在我的情况下,2.6.18-371.6.1.el5.centos.plus并修改configs(详见下文)。
  3. closures系统。 在virt-managerconfiguration中将磁盘types更改为virtio。
  4. 在grub提示符下启动并select新的内核。 “找不到卷组”,内核恐慌。

在上面的第二步中,我更新了/boot/grub/device.map,/etc/modprobe.conf,并重新运行了mkinitrd。

/boot/grub/device.map中:

# this device map was generated by anaconda (hd0) /dev/vda 

/etc/modprobe.conf中:

 alias eth0 virtio_net alias scsi_hostadapter virtio_blk alias snd-card-0 snd-hda-intel options snd-card-0 index=0 options snd-hda-intel index=0 remove snd-hda-intel { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-hda-intel 

/boot/grub/grub.conf文件:

 default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-371.6.1.el5.centos.plus) root (hd0,0) kernel /vmlinuz-2.6.18-371.6.1.el5.centos.plus ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.18-371.6.1.el5.centos.plus.img 

我解压缩initrd镜像,virtio模块似乎在那里:

 [root@localhost initrd]# ls -1 /tmp/initrd/lib/ | grep virt virtio_blk.ko virtio.ko virtio_pci.ko virtio_ring.ko 

我升级到使用lvm dumpconfig生成lvm.conf的mkinitrd-5.1.19.6-80.el5_9:

 [root@localhost initrd]# cat /tmp/initrd/etc/lvm/lvm.conf devices { dir="/dev" scan="/dev" preferred_names=[] filter="a/.*/" cache_dir="/etc/lvm/cache" cache_file_prefix="" write_cache_state=1 sysfs_scan=1 md_component_detection=1 ignore_suspended_devices=0 } activation { missing_stripe_filler="/dev/ioerror" reserved_stack=256 reserved_memory=8192 process_priority=-18 mirror_region_size=512 readahead="auto" mirror_log_fault_policy="allocate" mirror_device_fault_policy="remove" } global { umask=63 test=0 units="h" activation=1 proc="/proc" locking_type=1 fallback_to_clustered_locking=1 fallback_to_local_locking=1 locking_dir="/var/lock/lvm" } shell { history_size=100 } backup { backup=1 backup_dir="/etc/lvm/backup" archive=1 archive_dir="/etc/lvm/archive" retain_min=10 retain_days=30 } log { verbose=0 syslog=1 overwrite=0 level=0 indent=1 command_names=0 prefix=" " } 

我在这个问题中检查了CONFIG_SYSFS_DEPRECATED,但似乎是2.6.18后的选项。

有谁知道还有什么遗漏?

解决办法是更新系统。 Red Hat在5.3之前没有发布virtio guest驱动程序。

在这一点上,你有九个服务包。 只要保持最新的系统,就可以在问题发生之前解决问题。