KVM虚拟机的定时逐次开机设定方法-systemd方式

这篇具有很好参考价值的文章主要介绍了KVM虚拟机的定时逐次开机设定方法-systemd方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:KVM虚拟机系统是榨取服务器最大性能的一种好方法,但是谁也不想让服务器启动的时候要等待5分钟甚至以上的时间。 为了减轻服务器开机时的任务数量,需要虚拟机在开机后一段时间内,按顺序逐次启动,以达到各个服务间的依赖和功能衔接。

一、先上代码:kvm-vm.service

[Unit]
Description=Start KVM Guests
After=network-online.target

[Service]
Type=simple
ExecStart=/bin/bash -c 'while ! ping -c1 192.168.1.240 &>/dev/null; do sleep 1; done; for guest in NFS Mysql PHP Nginx; do virsh start $guest; sleep 1m; done'
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

说明:

a.  ping -c1 192.168.1.240   ,这一句表示在ping出KVM主机的ip回应后,开始执行后继的命令;240是KVM主机的IP。

b.  NFS Mysql PHP Nginx   这是我的四个vm的名称,因为这几个服务又一定的依赖性,所以按顺序启动。NFS为其他三个服务提供存储功能;Mysql 为wordpress、nextcloud提供数据库功能;PHP服务器开了多个pool,最后被nginx反向代理.

c.  sleep 1m    表示间隔1分钟开启一个虚拟机。

特别说明: 这个service是一直保持运行的,如果进入虚拟机,运行poweroff,则1分钟以后,该虚拟机还会被启动起来。 下面的是进阶版,服务器启动5分钟后再开始运行 kvm-vm.service, 并且运行5分钟后,自己会关闭, systemctl status kvm-vm.service  的状态也是inactive的

 二、进阶版

[Unit]
Description=Start KVM Guests
After=network-online.target

[Service]
TimeoutStartSec=infinity
ExecStartPre=/bin/sleep 300

ExecStart=/bin/bash -c 'while ! ping -c1 192.168.1.240 &>/dev/null; do sleep 1; done; for guest in NFS Mysql PHP Nginx; do virsh start $guest; sleep 1m; done'

TimeoutStopSec=1 
KillSignal=SIGINT

[Install]
WantedBy=multi-user.target

以上内容设定了KVM系统开机后300秒后该服务的具体功能才开始执行,在任务完成后,再过1分钟,该服务自动关闭。

KVM虚拟机的定时逐次开机设定方法-systemd方式​​​​​​​

 三、rc.local 系统的顺序启动脚本

1. 当然,系统首先要又rc.local程序,或者本身就是rc.local管理的,例如Alpine Linux.

Alpine Linux的半自动安装和桌面、远程登录、frp、aria2服务等的配置_alpinelinux安装桌面_lggirls的博客-CSDN博客

2.  vim vms-start.sh

#!/bin/bash
# 一个控制KVM虚拟机在KVM宿主机启动后,按照1.5分钟启动一个的频率,顺序启动的脚本;
# 总计6个虚拟机,名称分别是: NFS,Rides,Mysql,Only,PHP,Nginx;
# 用虚拟机的名称设定一个数组,要按照启动顺序编写,空格隔开;
guests=(NFS Rides Mysql PHP Nginx)
# 轮询数组中的虚拟机名称,间隔1.5分钟启动一次;
for guest in "${guests[@]}";
do
# 使用virsh 命令启动虚拟机
virsh start "$guest"
# 检查退出状态,并输出一个消息
if [ $? -eq 0 ];
then
echo "Started $guest successfully."
else
echo "Failed to start $guest!"
fi
# 在开始新一个虚拟机的轮询前,等待90秒;
sleep 90
done
# 退出该脚本
exit 0

3. 加入rc.local 启动项文章来源地址https://www.toymoban.com/news/detail-431633.html

 update-rc.d kvm-start

到了这里,关于KVM虚拟机的定时逐次开机设定方法-systemd方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 电脑进水无法开机怎么办 电脑进水开不了机的解决方法

    意外总是会不定时打破你的计划,电脑这类电器最怕遇到的除了火还有水,设备进水会导致数据丢失,那么我们遇到电脑进水怎么办?进水之后不正确处理也会引起很多不必要的麻烦.   解决办法 第一步:关机 如果您的电脑是在开机的状态下进水了,第一步就是关机,切断电

    2024年02月22日
    浏览(50)
  • KVM虚拟化介绍和安装使用方法

    虚拟化:在一台计算机上虚拟出多个逻辑的计算机,而且每个逻辑计算机 它可以是不同操作系统 虚拟化技术:可以扩大硬件容量,单个cpu模拟出多个cpu并行, 允许一个平台上同时运行多个操作系统,应用程序都可以在相互独立 的空间内运行,而且互不影响。 为什么企业使

    2023年04月09日
    浏览(42)
  • Windows自带虚拟机的使用方法

    常见的虚拟机软件:Windows下大名鼎鼎的VMware、多平台支持的VirtualBox、Linux下的QEMU windows10本身也具有虚拟机功能。那就是它的Hyper-V功能 Hyper-V 是 Microsoft 的硬件虚拟化产品。 它允许你创建和运行一个称为虚拟机的计算机 的软件版本。 每个虚拟机都充当运行操作系统和程序的

    2024年02月04日
    浏览(39)
  • systemd系列——开机自启动篇

            XDG Autostart 规范定义了一种在桌面环境启动和可移动介质安装时自动启动desktop 的方法,该方法就是将它们放在 特定的 Directories 中。所以对于有界面的程序的自启动,可以利用 linux 的 desktop 文件来实现,通过将创建好的 desktop 文件复制到 ~/.config/autostart 目录下,

    2024年02月08日
    浏览(33)
  • 虚拟机可以ping通主机,主机无法ping通虚拟机的解决方法

    关闭虚拟机防火墙 关闭防火墙后就可以ping通了 如何还无法ping通,将虚拟机重新启动后再尝试。 再次要ping 虚拟机的时候又ping不通了,搞了好久终于发现,只要将网络连接中的VMnet8禁用再重启就可以了。

    2024年02月13日
    浏览(48)
  • linux下通过systemd配置开机自启

    1.创建对应服务的启动脚本,放在/etc/systemd/system,名字为服务名.service 2.赋予权限 chmod 777 自启脚本绝对路径 3.重新加载systemd配置 systemctl daemon-reload 4.使用以下命令启用Kafka服务,使其在系统启动时自动运行: systemctl enable kafka 5.使用以下命令启动Kafka服务: systemctl start kafka

    2024年02月10日
    浏览(41)
  • 【Linux】使用systemd设置开机自启动命令

    systemd是Linux系统中现代化的初始化系统,可以使用它来实现开机自动运行命令。在systemd中,可以通过创建一个service文件,把要执行的命令放在其中,然后将其添加到systemd的自启动项中。 具体操作步骤如下: 首先在终端中使用sudo权限创建一个.service文件,用于存储service配置

    2024年02月08日
    浏览(76)
  • 安装Ubuntu22.04虚拟机的一些常见问题解决方法

    在win11上用VMware17 pro 安装Ubuntu 22.04无法开启共享剪切板、文件拖拽、共享文件夹等问题,改用VirttalBox安装Ubuntu,以下是遇到的一些问题和解决方法,具体的安装步骤可自行百度,网上有很详细的讲解。 设备共享文件夹 开启后发现不起作用需要 安装增强功能 开启后任然无法

    2024年02月02日
    浏览(52)
  • Linux systemd 定时任务

    哈喽大家好,我是咸鱼。 说到 Linux 定时任务,大家用得最多的就是 crond 服务,但其实 systemd 也有类似的功能。我们不但可以通过 systemd 来管理服务,还能设置定时任务,那就是 systemd timer。 与 crond 相比,systemd 定时任务具有以下优点: 更高的精度:systemd 定时任务可以精确

    2024年04月15日
    浏览(28)
  • Ubuntu开机自启服务systemd.service配置教程(Ubuntu服务)(Linux服务)upstart(systemd教程)

    我们在linux系统下启动一个程序,一般用一条命令,或者执行一个脚本就行了,那么,为什么还要将程序配置成服务?这样做有什么好处? 1. 自动启动 配置成服务后,程序将在系统启动时自动启动,无需手动操作。这样可以确保程序在系统重启后能够自动运行,避免因为人为

    2024年02月05日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包