代码改变世界

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

2023-01-08 01:00  AlfredZhao  阅读(66)  评论(0编辑  收藏  举报

首先,通过现有的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源配置总结 配置,这里不再赘述。