使用KVM克隆用于Oracle DB的主机

使用,kvm,克隆,用于,oracle,db,主机 · 浏览次数 : 57

小编点评

**1.克隆vm1生成db12** 使用`virsh clone`命令,将`vm1`克隆到一个名为`db12`的VM中: ```bash # Create a 100GB empty file for the guest OS dd if=/dev/zero of=/flash/vm-images/db1-lun1.img bs=1M count=102400 # Copy the file to the guest OS dd if=/dev/zero of=/flash/vm-images/db1-lun1.img bs=1M count=102400 | head -c 102400 ``` **2.修改db1配置文件** 打开`db1.xml`配置文件,并根据需要进行以下修改: * 将`cpu`属性设置到4 * 将`memory`属性设置到16GB * 将`disk`属性设置到一个名为`vdb`的虚拟硬盘,并设置`device`属性为`/dev/vdb` * 将`source`属性设置到`/flash/vm-images/db1-lun1.img` **3.配置yum源** 为了方便后续安装Oracle时,可以使用一个名为`yum.repo`的文件存储yum源: ```bash # Create a yum.repo file cat << EOF > yum.repo name: Oracle baseurl: file:///flash/vm-images/oracle.repo reporepo: name: Oracle baseurl: file:///flash/vm-images/oracle.repo path: / EOF # Add the yum.repo file to the system yum install -y yum.repo ``` **4.验证VM** 使用`virsh dominfo`命令检查VM的配置: ```bash # Get VM information virsh dominfo db1 # Verify CPU and memory settings echo "CPU: $vm.cpu" echo "Memory: $vm.memory" ```

正文

首先,通过现有的vm1「在上篇文章 使用KVM创建OEL虚拟机 已创建」克隆出一个vm,名字叫做db1,然后修改一些配置,使其更适用于Oracle DB的主机。

1.通过克隆vm1生成db1

克隆一个VM,以vm1为模版克隆db1:

--clone vm:
# virsh suspend vm1

# virt-clone \
--connect qemu:///system \
--original vm1 \
--name db1 \
--file /flash/vm-images/db1.img

# virsh resume vm1

# virsh start db1

2.解决virsh console db1 卡住问题

使用virt-manager图形进入终端,修改IP地址之后就可以ssh连接IP地址登陆了,再来配置解决virsh console db1 问题;

1)在 /etc/securetty 文件尾部追加内容:

echo ttyS0 >> /etc/securetty

2)在 /etc/inittab 文件尾部追加内容:

echo "S0:12345:respawn:/sbin/agetty/ ttyS0 115200" >> /etc/inittab

3)修改 /etc/grub2.cfg

在指定位置后添加console=ttyS0,具体在系统内核版本这里:

[root@localhost ~]# uname -a
Linux localhost 5.4.17-2102.201.3.el7uek.x86_64 #2 SMP Fri Apr 23 09:05:55 PDT 2021 x86_64 x86_64 x86_64 GNU/Linux

    100         linux16 /vmlinuz-5.4.17-2102.201.3.el7uek.x86_64 root=/dev/mapper/ol-root ro rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet LANG=en_US.UTF-8
    101         initrd16 /initramfs-5.4.17-2102.201.3.el7uek.x86_64.img

--在第100行这里修改添加“console=ttyS0”,示例如下:

    100         linux16 /vmlinuz-5.4.17-2102.201.3.el7uek.x86_64 root=/dev/mapper/ol-root ro rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet console=ttyS0 LANG=en_US.UTF-8
    101         initrd16 /initramfs-5.4.17-2102.201.3.el7uek.x86_64.img

重启之后再次执行virsh console db1,回车后输入账号密码登录,如果要退出执行 Ctrl+]

[root@bogon ~]# virsh console db1
连接到域 db1
换码符为 ^]


Oracle Linux Server 7.9
Kernel 5.4.17-2102.201.3.el7uek.x86_64 on an x86_64

localhost login: root
Password:
Last login: Sat Jan  7 23:38:36 on ttyS0
[root@localhost ~]#
[root@bogon ~]#
[root@bogon ~]# virsh console db1
连接到域 db1
换码符为 ^]


[root@localhost ~]#

测试执行virsh console db1,回车后输入账号密码登录,退出执行 Ctrl+] 退出,此时再次执行virsh console db1,回车后甚至都无需再次输入密码。
已达成期望效果。

3.修改配置 CPU、内存、磁盘大小

需求是将db1的VM修改为:4 vcpu,16GB,100GB存储;

db1当前配置:

[root@bogon ~]# virsh dominfo db1
Id:             7
名称:       db1
UUID:           43e26717-973d-44f8-8dfb-1a3bd7e5b04f
OS 类型:    hvm
状态:       running
CPU:          2
CPU 时间:   184.7s
最大内存: 2097152 KiB
使用的内存: 2097152 KiB
持久:       是
自动启动: 禁用
管理的保存: 否
安全性模式: selinux
安全性 DOI: 0
安全性标签: system_u:system_r:svirt_t:s0:c532,c921 (enforcing)

下面开始修改:
1)先创建一个100GB的文件:

# dd if=/dev/zero of=/flash/vm-images/db1-lun1.img bs=1M count=102400

[root@bogon qemu]# dd if=/dev/zero of=/flash/vm-images/db1-lun1.img bs=1M count=102400
记录了102400+0 的读入
记录了102400+0 的写出
107374182400字节(107 GB)已复制,279.12 秒,385 MB/秒
```shell

2)关闭vm修改其配置文件,调整VCPU为4,最大内存为16G,增加一块100GB的磁盘:

```shell
# virsh shutdown db1
# virsh edit db1

--修改CPU:
  <vcpu placement='static'>4</vcpu>

--修改最大内存:
  <memory unit='KiB'>16777216</memory>

--原有磁盘内容不变:
<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/flash/vm-images/db1.img'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>

--仿照原有格式,增加内容,主要修改文件路径、设备名称、slot位置,还有设备类型为raw,其他不变:(注意这里slot的0x08也被用了,所以改为0x10)
<disk type='file' device='disk'>
  <driver name='qemu' type='raw'/>
  <source file='/flash/vm-images/db1-lun1.img'/>
  <target dev='vdb' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/>
</disk>

# virsh create /etc/libvirt/qemu/db1.xml
# virsh dominfo db1
# virsh setmem db1 16777216

修改完成后查看:

[root@bogon qemu]# virsh dominfo db1
Id:             9
名称:       db1
UUID:           43e26717-973d-44f8-8dfb-1a3bd7e5b04f
OS 类型:    hvm
状态:       running
CPU:          4
CPU 时间:   30.1s
最大内存: 16777216 KiB
使用的内存: 16777216 KiB
持久:       是
自动启动: 禁用
管理的保存: 否
安全性模式: selinux
安全性 DOI: 0
安全性标签: system_u:system_r:svirt_t:s0:c565,c897 (enforcing)

4.配置yum源

这个是为了后续安装Oracle时,方便直接yum安装所需包。

可以参考之前文章
Linux的yum源配置总结 配置,这里不再赘述。

与使用KVM克隆用于Oracle DB的主机相似的内容:

使用KVM克隆用于Oracle DB的主机

首先,通过现有的vm1「在上篇文章 使用KVM创建OEL虚拟机 已创建」克隆出一个vm,名字叫做db1,然后修改一些配置,使其更适用于Oracle DB的主机。 1.通过克隆vm1生成db1 2.解决virsh console db1 卡住问题 3.修改配置 CPU、内存、磁盘大小 4.配置局域网y

kvm链接克隆虚拟机迁移到openstack机器的实验

总结 如果是完整克隆的那种虚拟机,是可以直接在openstack使用的,如果镜像格式没问题的话。 因为kvm虚拟机大部分都是链接克隆出来的镜像,不可用直接复制使用,所以需要创建新的镜像文件 创建空盘:qemu-img create -f qcow2 mcwlink1-new.qcow2 50G 将链

使用KVM创建OEL虚拟机

在Linux工作站上使用KVM创建虚拟机。 首先说下我的需求: 1.其他LAN内的笔记本也可以连接到这些KVM的虚拟机,因此需要配置使用桥接网络 2.创建一个虚拟机,采用最小化安装系统,作为基础模版,供后续快速克隆 Part1 : 首先,配置桥接网络: 已有的网卡配置文件中,添加一行: BRIDGE

[转帖]【KVM】KVM和QEMU的关系及区别

KVM架构 KVM(Kernel-based Virtual Machine)包含一个为处理器提供底层虚拟化、可加载的核心 模块kvm.ko(kvm-intel.ko或kvm-amd.ko),使用QEMU(QEMU-KVM)作为虚拟机上层 控制工具。KVM无需改变Linux或Windows系统就能运

[转帖]libvirt理解总结

一、libvit总结 libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和API。Libvirtd是一个daemon进程,可以被本地的virsh调用,也可以被远程的virsh调用,Libvirtd调用qemu-kvm操作虚拟机。 二、libvirt特点 •libvirt是用于管理虚拟化平

[转帖]IO虚拟化——SR-IOV 原理

摘要: 介绍SR-IOV 的概念、使用场景、VMware 和 KVM 中的配置方法。 第一部分:虚拟化通信延迟: 第二部分:IO 虚拟化 第三部分:SR-IOV 第四部分:Intel网卡在VMware 环境 实现 SR-IOV 需要的条件和配置方法 第五部分:SR-IOV 在Red Hat Virt

[转帖]在 virt-manager 的主机和客户机之间共享文件夹

https://linux.cn/article-15470-1.html 在本指南中,你将学习如何在 virt-manager 的 KVM、QEMU 和 libvirt 的主机和客户机之间共享文件夹。 virt-manager 应用或软件包使用 libvirt 库来提供虚拟机管理服务。它有一个桌面

[转帖]内存配置+大页 HugePage

内存配置 例1:不加内存参数,模拟一个默认大小内存的客户机系统。 qemu-system-x86_64 /home/dudu/kvm/ubuntu14.04.img 在客户机中,可以通过两种常用的方式来查看内存信息,具体如下: free命令通常用来查看内存的使用情况,“-m”参数是指内存大小以MB为

使用EF 连接 数据库 SQLserver、MySql 实现 CodeFirst

1.新建项目,下载Nuget安装包 创建项目需要注意几点,如果是基于 .net framework 的项目 需要选择 相应版本的 EF, 如果是跨平台则选择EF Core版本。 我这里选择的是 .net framework 版本。红框里面是 实现EF Code First 需要的包。 对应的版本:

使用explain优化慢查询的业务场景分析

问:你最害怕的事情是什么? 答:搓澡 问:为什么? 答:因为有些人一旦错过,就不在了 Explain 这个词在不同的上下文中有不同的含义。在数据库查询优化的上下文中,"EXPLAIN" 是一个常用的 SQL 命令,用于显示 SQL 查询的执行计划。执行计划是数据库如何执行查询的一个详细描述,包括它将