Ipxe使用sanboot远程启动iscsi硬盘

如果一台宿主机上面cpu和memory都有富裕,但是磁盘不富裕,那就会面临资源浪费

所以干脆用ipxe的sanboot来启动远程的iscsi磁盘来启动虚机好了

首先用《iscsi卷的远程挂载 》这篇文章中所说的方法,在172.18.30.18的20T的loopback vg group上,划出一块80G的硬盘

 1#划个lvc,用的是vg-targetd的20T中的80G
 2lvcreate -L 80G -n pvc-vis-18-31-48 vg-targetd
 3
 4#建立block块设备
 5targetcli /backstores/block create vg-targetd:pvc-vis-18-31-48 /dev/vg-targetd/pvc-vis-18-31-48
 6
 7#建立30.18上的iscsi服务端,似乎用renhe-18-30-18比较好,但是不好区分多个卷,还是用下面的精准
 8targetcli /iscsi create iqn.2020-10.com.ddky:vis-18-31-48
 9
10#建立luns,会自动建立portal
11targetcli /iscsi/iqn.2020-10.com.ddky:vis-18-31-48/tpg1/luns create /backstores/block/vg-targetd:pvc-vis-18-31-48
12
13#建立客户端的iscsi,不加任何认证
14targetcli /iscsi/iqn.2020-10.com.ddky:vis-18-31-48/tpg1/acls create iqn.2020-10.com.ddky:vis-18-31-48

记下来这个: iqn.2020-10.com.ddky:vis-18-31-48

然后修改pxe,位于172.18.31.2 /export/html/pxeboot/boot2.php,本质是发送ipxe的命令

sanhook是加载远程硬盘,并设置为/dev/sda

 1function sansetup() {
 2    global $hostname;
 3    echo ":sansetup\n";
 4    echo "set initiator-iqn iqn.2020-10.com.ddky:vis-18-31-48\n";
 5    echo "set keep-san 1\n";
 6    echo "sanhook iscsi:172.18.30.18::::iqn.2020-10.com.ddky:vis-18-31-48\n";
 7    echo "kernel $hostname/repos/centos/7/os/x86_64/images/pxeboot/vmlinuz\n";
 8    echo "initrd $hostname/repos/centos/7/os/x86_64/images/pxeboot/initrd.img\n";
 9    echo "imgargs vmlinuz load_ramdisk=1 ks=$hostname/pxeboot/install/centos/centos7_last.php ksdevice=eth0 net.ifnames=0 biosdevname=0\n";
10    echo "boot\n";
11}

发动一个无盘的虚机从pxe启动(172.18.30.3 /export/kvm/48.sh):

 1#!/bin/bash
 2    virt-install \
 3    --name=pxe-18-31-48 \
 4    --vcpu=4 \
 5    --ram=4096 \
 6    --pxe \
 7    --disk none \
 8    --os-type=linux  \
 9    --network bridge=br0.199 \
10    --vnc --vnclisten=0.0.0.0 --vncport=5910

注意上面:指定了pxe 和disk none,这样就会启动起来并安装到远程的iscsi盘上去

安装完成后,修改ipxe指定该虚机机从sanboot启动,这时候iscsi卷里已经有引导信息了,就需要去掉指定。

1function sanboot() {
2    global $hostname;
3    echo ":sanboot\n";
4    echo "set initiator-iqn iqn.2020-10.com.ddky:vis-18-31-48\n";
5    echo "set keep-san 1\n";
6    echo "sanboot iscsi:172.18.30.18::::iqn.2020-10.com.ddky:vis-18-31-48\n";
7    echo "boot\n";
8}

重启后该机器就会从iscsi启动了。


Prometheus集成进mysql_exporter
Suricata加上elk分析机房入口全流量
comments powered by Disqus