云主机&虚拟化-kvm案例(找回数据)

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。由于涉及到内容较多,这里的目录就只是以简单分类介绍和说明,不再针对单个小节进行目录列出,主要涉及的分类包括以下几个方面:

1.虚拟化介绍

2.kvm基本使用

3.kvm进阶使用(本小节属于)

4.kvm技术原理

5.vmware介绍&使用

6.小结

对于kvm,在我们日常运维中,其实只要经常做备份或者说快照,对于虚拟机的绝大部分问题都可以恢复,这里列举一个可能会遇到的磁盘问题然后提供2种方法来修复。

故障情况

虚拟机A故障,故障情况是无法启动,短时间无法修复,但是这个时候需要里面的数据,我们的目的是尽快把故障主机数据取出来。

csharp 复制代码
#模拟故障机器
[root@localhost ~]# virsh list --all |grep kvm31.202 
-    kvm31.202          shut off

**方法1-**把磁盘挂载到到其他主机

1.确认当前主机磁盘位置

ini 复制代码
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/image/kvm31.202.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </disk>

2.把当前磁盘挂载到其他主机

这里注意盘符和pci编号要修改,避免冲突。

xml 复制代码
 <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/image/kvm31.205'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/image/kvm31.202.qcow2'/>
      <!--vda改成vdb -->
      <target dev='vdb' bus='virtio'/> 
      <!-- 修正了slot的值到'0x01',并且function的值到'0x1' -->
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
    </disk>

3.重新定义挂载磁盘的主机

bash 复制代码
#具体以现场为准
virsh define /etc/libvirt/qemu/kvm31.205.xml
virsh start kvm31.205

4.进入系统

bash 复制代码
#根据具体需求挂载,使用完毕记得还原。
mkdir /xxx
mount /dev/vdb2 /xxx

使用我们前面学习的磁盘挂载就可以找回数据,链接参考:Linux磁盘-格式化&挂载

win也是类似的,只是需要对应的win系统。

**方法2-**使用nbd方式

1.加载nbd内核

csharp 复制代码
#加载nbd内核
[root@localhost ]# lsmod | grep nbd
[root@localhost ]# sudo modprobe nbd
[root@localhost ]# lsmod | grep nbd
nbd                    73728  0

2.使用nbd挂载磁盘

bash 复制代码
#具体路径和名字以现场为准
[root@localhost ]# qemu-nbd -c /dev/nbd0 /data/image/kvm31.202.qcow2
[root@localhost nbd]# ll /dev/nbd0*
brw-rw---- 1 root disk 43, 0 Nov 12 23:43 /dev/nbd0
brw-rw---- 1 root disk 43, 1 Nov 12 23:43 /dev/nbd0p1
brw-rw---- 1 root disk 43, 2 Nov 12 23:43 /dev/nbd0p2

有了设备路径,参考上面的步骤挂载即可,但是只适合标准分区,如果是lvm则参考下面的步骤。

3.扫描pv

ini 复制代码
[root@localhost nbd]# pvscan   PV 
/dev/nbd0p2   VG centos   lvm2 [<19.00 GiB / 0    free]  
Total: 1 [<19.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 0 [0   

4.激活vg

csharp 复制代码
#名字来源于pv扫描
[root@localhost nbd]# vgchange -ay centos  
1 logical volume(s) in volume group "centos" now active

5.查看lv

bash 复制代码
[root@localhost nbd]# lvdisplay  
--- Logical volume ---  
LV Path                /dev/centos/root

剩下的挂载参考上面部分,处理完毕以后,记得卸载。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
2301_810746312 分钟前
CKA冲刺40天笔记 - day20-day21 SSL/TLS详解
运维·笔记·网络协议·kubernetes·ssl
❀͜͡傀儡师7 分钟前
docker 部署 komari-monitor监控
运维·docker·容器·komari
物联网软硬件开发-轨物科技33 分钟前
【轨物方案】软硬件一体赋能,开启矿山机械远程智慧运维新篇章
运维
月熊35 分钟前
在root无法通过登录界面进去时,通过原本的普通用户qiujian如何把它修改为自己指定的用户名
linux·运维·服务器
大江东去浪淘尽千古风流人物1 小时前
【DSP】向量化操作的误差来源分析及其经典解决方案
linux·运维·人工智能·算法·vr·dsp开发·mr
打码人的日常分享2 小时前
智慧城市一网统管建设方案,新型城市整体建设方案(PPT)
大数据·运维·服务器·人工智能·信息可视化·智慧城市
赖small强2 小时前
【Linux驱动开发】NOR Flash 技术原理与 Linux 系统应用全解析
linux·驱动开发·nor flash·芯片内执行
风掣长空3 小时前
Google Test (gtest) 新手完全指南:从入门到精通
运维·服务器·网络
luback3 小时前
前端对Docker简单了解
运维·docker·容器
0思必得03 小时前
[Web自动化] 开发者工具应用(Application)面板
运维·前端·python·自动化·web自动化·开发者工具