- 博客(83)
- 资源 (1)
- 收藏
- 关注
原创 KVM network vlan
[root@localhost ~]# [root@localhost ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.2.5.181 netmask 255.255.255.0 broadcast 10.2.5.255 inet6 fe80::5054:ff:fe98:e17e prefixlen 64 scope...
2021-07-28 10:45:30
523
原创 kvm ovs test setting
Avocado ovs(openvswitch) 测试:物理机的一些配置编辑此区域1. 安装包apt install openvswitch-switch编辑此区域2.加载 openvswitch 模块lsmod | grep openvswicthmodprobe openvswitchovs-vsctl show编辑此区域3. 创建 ovs bridge,并设置为 NAT 模式ovs-vsctl add-br virbr0ifconfig virbr0 192...
2021-07-28 10:34:40
389
原创 kvm zero-copy
[root@localhost ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.2.5.181 netmask 255.255.255.0 broadcast 10.2.5.255 inet6 fe80::5054:ff:fe98:e17e prefixlen 64 scopeid 0x20<link> ...
2021-07-28 10:27:30
534
原创 KVM网络配置(六)—— 内核态的 vhost-net 后端
内核态的 vhost-net 后端前面提到的 virtio 在 host 中的后端处理程序(backend)一般是由用户空间的 QEMU 提供的,然而,如果对于网路 I/O 请求的后端处理能够在内核空间完成,则效率会更高,能提高网络吞吐量和减少网络延迟。vhost-net 内核驱动模块,将 virtio-net 的后端处理任务放到内核空间中执行,从而提高效率。网卡多队列当虚拟机中的 virtio-net 网卡只有一个队列时,该网卡的中断只能集中由一个 CPU 来处理;当开启网卡多队列时,在 ...
2021-06-28 19:31:49
877
原创 KVM 半虚拟化驱动 —— virtio
基本原理:使用QEMU模拟I/O的情况下,当客户机中的设备驱动程序(device driver)发起I/O操作请求之时,KVM模块中的I/O操作捕获代码会拦截这次I/O请求,然后经过处理后将本次I/O请求的信息存放到I/O共享页,并通知用户控件的QEMU程序。QEMU模拟程序获得I/O操作的具体信息之后,交由硬件模拟代码来模拟出本次的I/O操作,完成之后,将结果放回到I/O共享页,并通知KVM模块中的I/O操作捕获代码。最后,由KVM模块中的捕获代码读取I/O共享页中的操作结果,并把结果返回到客户...
2021-06-28 19:16:43
385
原创 KVM网络配置(五)—— QEMU 内部的用户模式网络
简介在启动虚拟机时,如果没有任何“-net”参数,QEMU 默认使用的是“-net nic -net user”的参数,QEMU 提供一种用户模式(user-mode)的网络模拟。使用该模式的网络的虚拟机可以连接物理机以及外部网络。用户模式网络完全由 QEMU 自身实现,不依赖于其他的工具(如 bridge-utils、iptables等)。QEMU模拟实现整个TCP/IP协议栈,并且使用此协议栈提供一个虚拟的NAT网络。优缺点简单、独立性好、无需 root 权限、虚拟机网络隔离网络性能差
2021-05-21 12:11:19
2334
原创 KVM网络配置(四)—— 使用Libvirt NAT 网络
简介libvirt是提供了一个方便的方式来管理虚拟机和其他虚拟化功能的软件的集合,如存储和网络接口管理。这些软件包括一个API库,一个守护进程(libvirtd),和一个命令行实用程序(virsh)。libvirt的首要目标是能够管理多个不同的虚拟化供应商/虚拟机管理程序提供一个单一的方式。例如,命令“virsh列表等等都可以用于任何支持现有的虚拟机管理程序列表(KVM、Xen、VMware ESX,等)不需要学习管理程序特定的工具!安装[root@localhost ~]...
2021-05-20 20:55:56
1096
原创 KVM网络配置(二)—— 桥接(bridge)模式
简介在 QEMU/KVM 的网络使用中,桥接模式可以让虚拟机需物理机共享一个物理网络设备连接外部网络,虚拟机有自己独立的 IP 地址,可以访问外部网络,外部网络也可以访问虚拟机。优缺点:使用桥接模式配置简单,但如果你的网络环境是ip资源很缺少或对ip管理比较严格的话,那桥接模式就不太适用了桥接模式网络配置步骤1. 安装 bridge-utils 软件包,它提供 brctl 工具来配置网桥yum install bridge-utils2. 加载 tun 和 bridge...
2021-05-18 20:48:15
13826
23
原创 KVM网络配置(一)—— qemu命令行网络相关参数详解
QEMU 支持的网卡类型QEMU 提供了对一系列主流和兼容性良好的网卡的模型,通过 “-net nic,model=?” 参数可以查询到当前的 QEMU 工具实现了哪些网卡的模拟。如下:[root@localhost ~]# /usr/libexec/qemu-kvm --versionQEMU emulator version 2.12.0 (qemu-kvm-ev-2.12.0-44.1.el7_8.1)Copyright (c) 2003-2017 Fabrice Bellar...
2021-05-18 20:46:36
3312
1
原创 KVM内存管理(九)—— hotplug
简介内存的热插拔分为两个步骤:物理内存热插拔和逻辑内存热插拔。物理内存热插拔: 对物理的内存条插拔的支持。逻辑内存热插拔: 物理内存作为内核内存管理系统可以使用的资源,被动态地加入或踢出地支持。内存的热插拔地过程: 物理内存热插入 -> 逻辑内存热添加 -> 逻辑内存热删除 -> 物理内存热拔出物理内存热插拔的支持,主要依赖于ACPI地功能。逻辑内存热插拔的支持,需要内核支持,kernel的启动参数添加 movable_nodeQEMU/KVM 内存热插拔QEMU/
2021-04-26 20:57:04
619
原创 KVM内存管理(八)—— NUMA
简介NUMA(Non-Uniform Memory Access,非统一内存访问架构)是相对于 UMA(Uniform Memory Access)而言的。早年的计算机架构都是 UMA,如图。所有的 CPU 处理单元(Processor)均匀地通过共享地总线访问内存,所有 CPU 访问所有内存单元地速度是一样的。在多处理器的情况下,多个任务会被分派到各个处理器上并发执行,它们竞争内存资源的情况会非常频繁,从而引起效率的下降。所以,随着多处理器架构的普及,处理器数量的增长,NUMA架构兴起,.
2021-04-20 21:02:13
868
原创 KVM内存管理(七)—— 内存页/大页/透明大页 Stream 数据对比
内存页,关闭透明大页[root@localhost stream]# ./stream.1core.40M.20x.gcc-------------------------------------------------------------STREAM version $Revision: 5.10 $-------------------------------------------------------------This system uses 8 bytes per...
2021-04-20 15:27:01
551
原创 KVM内存管理(六)—— transparent hugepage
[root@localhost ~]# cat /proc/4800/smaps | grep -e "AnonHugePages"AnonHugePages: 6144 kB AnonHugePages: 2048 kB AnonHugePages: 2048 kB AnonHugePages: 4096 kBAnonHugePages: 1335296 kB[root@localhost ~]# [root@localhost...
2021-04-20 15:15:42
619
原创 KVM内存管理(五)—— hugepage
[root@localhost stream]# [root@localhost stream]# free -h total used free shared buff/cache availableMem: 7.8G 411M 6.4G 48M 1.0G 7.1GSwap: 7.9G ...
2021-04-19 16:49:11
1050
转载 KVM内存管理(四)—— balloon
[root@localhost ~]# telnet localhost 3333Trying ::1...Connected to localhost.Escape character is '^]'.QEMU 2.12.0 monitor - type 'help' for more information(qemu) (qemu) info balloonballoon: actual=2048(qemu) balloon 1024(qemu) info b...
2021-04-15 17:43:43
1417
原创 KVM内存管理(三)—— KSM操作实践
简介:cow:copy on write,也就是写时复制。这是一种内存共享技术,在linux中当使用fork 函数创建一个进程时,子进程和父进程共享全部的内存,当这片共享的内存区域被进程试图修改的时候,内核会分配一块新的内存区域,并将被试图修改的共享内存区域复制到新的内存区域上,然后再让进程去修改内存区域。ksm:kernel SamePage Merging。 ksm让内核扫描正在运行中的所有程序,并比较它们的内存,如果发现它们的内存页有相同的,那么就把它们相同的内存页合并为一个内...
2021-04-14 10:35:56
2133
原创 KVM内存管理(二)—— KSM简介
转载:https://blog.51cto.com/linzb/1883395简介:cow:copy on write,也就是写时复制。这是一种内存共享技术,在linux中当使用fork 函数创建一个进程时,子进程和父进程共享全部的内存,当这片共享的内存区域被进程试图修改的时候,内核会分配一块新的内存区域,并将被试图修改的共享内存区域复制到新的内存区域上,然后再让进程去修改内存区域。ksm:kernel SamePage Merging。 ksm让内核扫描正在运行中的所有程...
2021-04-10 16:22:35
2469
原创 KVM内存管理(一)—— 设置基本参数
内存(Memory)是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。内存的运行也决定计算机整体运行快慢的程度。内存设置基本参数通过qemu命令行启动虚拟机时设置内存大小的参数如下:-m [size=]me.
2021-04-10 16:15:21
1042
原创 Linux ulimit命令
Linux ulimit命令用于控制shell程序的资源。ulimit为shell内建指令,可用来控制shell执行程序的资源。参数: -a 显示目前资源限制的设定。 -c <core文件上限> 设定core文件的最大值,单位为区块。 -d <数据节区大小> 程序数据节区的最大值,单位为KB。 -f <文件大小> shell所能建立的最大文件,单位为区块。 -H 设定资源的硬性限制,也就是管理员所设下的限.
2021-01-30 15:40:21
161
转载 python2 与 python3 socket编程的区别
python2 与 python3 socket编程的一点小区别python3 与python2 其实有很大的区别,但为了写程序的人的方便,很多东西尽量还是按照python2 的函数,类以及方法来处理,但这里面的编码可能会有区别。前几天为了改以前写的一个socket 的东西,测试了python2 与 python3的在socket 方面的最基本的差别.在python3 中socket 接受bytes, 所以必须手动调用encode 以及 decode 方法.import sysimport.
2021-01-30 14:37:37
513
原创 git颜色配置
启用默认的颜色设置可以使用如下命令git config --global color.ui true如果不喜欢花花绿绿的颜色,可以将其关闭:git config --global color.ui falsegit help config 查看 color.ui This variable determines the default value for variables such as color.diff and color.gre...
2021-01-30 14:31:49
1000
原创 安装UOS虚拟机(一)virt-manager
ISO 安装1. 新建虚拟机-本地安装介质在虚拟系统管理器点击”文件“,选择”新建虚拟机“2. 选择ISO镜像因为使用的虚拟光驱,要选择使用ISO映像,并取消选中“根据安装介质自动侦测操作系统”,操作系统类型选择“Generic default”3. 选择CPU和内存根据实际虚拟机操作系统的需求分配内存大小和CPU核数。4. 选择“虚拟机启用存储”,并创建自定义存储,UOS iso 安装至少需要64G空间创建存储卷后,选择该卷,继续。...
2021-01-15 17:59:24
1769
4
原创 安装UOS虚拟机(二)优化、压缩qcow2
qcow2简介qcow2是动态的,即便文件系统不支持sparse file,文件大小也很小qcow2功能一:copy onwriteqcow2的格式如下它实行的是2-Level loopupqcow2的数据是存储在data clusters里面的,每个cluster是512 byte sector为了能够管理这些cluster,qcow2保存了两层的Table,L1 table指向L2 Table,L2 Table管理data cluster.在image里面的off..
2021-01-15 17:59:05
933
转载 Linux udev规则简介
转载:https://www.cnblogs.com/fah936861121/p/6496608.html1. udev简介1.1 什么是udev?udev是Linux(linux2.6内核之后)默认的设备管理工具。udev 以守护进程的形式运行,通过侦听内核发出来的 uevent 来管理 /dev目录下的设备文件。如何理解udev是守护进程呢?即系统内核启动后init进程(比如busybox的init程序、sysinit、Upstart或systemd)根据runlevel运行等级.
2021-01-15 17:48:42
507
原创 虚拟机本地迁移(KVM migrate)
QEMU/KVM 迁移的概念 迁移(migration)包括系统整体的迁移和某个工作负载的迁移。系统整理迁移,是将系统上所有软件包括操作系统完全复制到另一个物理机硬件机器上。虚拟化环境中的迁移,可分为静态迁移(static migration,或者 冷迁移 cold migration,或者离线迁移 offline migration) 和 动态迁移 (live migration,或者 热迁移 hot migration 或者 在线迁移 online migration)。静态迁移和动态迁移的...
2021-01-08 16:24:15
1545
1
原创 qemu-kvm 测试不同的网络设备(virtio-net-pci/e1000/e1000e/rtl8139)
基于avocado/avocado-vt 测试工具。测试所用的qcow2文件——jeos-27-x86_64.qcow2,就是avocado的qcow2[root@localhost ~]# cat /etc/qemu-ifup#!/bin/bashswitch=virbr0ifconfig $1 upbrctl addif $switch $1[root@localhost ~]#virtio-net-pci/usr/libexec/qemu-kvm \ ...
2021-01-07 20:55:44
6454
原创 Jenkins multijob phase 的使用(勾选Enable condition时)
1. 设置 Phase name,例如group-012. 添加 Phase jobs,例如job-01可以打开条件判断,勾选 Enable condition, 添加条件, 例如 "${JENKINS_BRANCH}" == "master"只有当branch 为 master时, job-01 才会被调用执行,其他情况直接跳过。3. 设置 job execution type,即job执行顺序, 并行/串行,根据自己情况而定。下图所示:...
2021-01-07 16:13:53
1638
1
原创 为使用 GRUB2 的机器配置网络引导(PXE启动服务器)
所需软件和服务: 服务器端DHCP: 为客户端分配IP (切记不要将DHCP Server网口连到非本地测试网络外的其他网络,会导致其他网络IP分配异常.)TFTP: 传送PXE Menu, Kernel, Initrd等文件NFS-utils: 网络文件系统,可供Client挂载,存储文件等Rpcbind: NFS的守护进程Syslinux: 提供PXE启动引导文件pxelinux.0 客户端 需要先在本机硬...
2020-12-25 16:53:37
5699
2
原创 IPMI/BMC 简介和使用
如果服务器crash了或者就hang住了,我们不必要跑到机房去按电源键的,因为我们也想“运筹帷幄之中,决胜千里之外”嘛。我们可以用IPMI,它可以让我们远程用一条命令开启(关闭、重启)一台服务器,也可以检查服务器的状态。IPMI简介:from wikipediaTheIntelligent Platform Management Interface (IPMI)is a standardized computer system interface used by system administr..
2020-12-24 15:45:56
3367
原创 linux 设置内存大页
方法一:[root@localhost ~]# [root@localhost ~]# cat /proc/meminfo |grep HugeAnonHugePages: 0 kBShmemHugePages: 0 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 327
2020-12-14 11:19:33
1915
原创 linux shell 简单的算术运算(整数/浮点)
整数运算用(( )) 或 [ ] 即可。[root@localhost ~]# echo $(( 5 + 2 ))7[root@localhost ~]# echo $(( 5 - 2 ))3[root@localhost ~]# echo $(( 5 * 2 ))10[root@localhost ~]# echo $(( 5 / 2 ))2[root@localhost ~]# echo $(( 5 % 2 ))1[root@localhost ~]# echo $[ 5.
2020-12-14 09:43:49
387
原创 linux设置ssh免密登录
SSH 三步解决免密登录1.客户端生成公私钥本地客户端生成公私钥:(一路回车默认即可)ssh-keygen上面这个命令会在用户目录.ssh文件夹下创建公私钥cd ~/.sshls已创建的两个密钥:id_rsa (私钥) id_rsa.pub (公钥)2.上传公钥到服务器这里测试用的服务器地址为:192.168.1.100用户为:rootssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.100上面这条.
2020-12-11 17:10:45
456
转载 KVM虚拟机镜像那点儿事,qcow2六大功能,内部快照和外部快照有啥区别?
转载: https://sq.163yun.com/blog/article/218146701477384192
2020-11-21 15:45:47
1568
原创 debian系统使用grubby及伪造dpkg安装状态
安装grubbydebian系统没有grubby安装包,所以使用源码编译, 源码地址:https://github.com/lemenkov/grubby.gitmakemake installdpkg -s grubby 会报错伪造dpkg安装状态vim /var/lib/dpkg/status随便复制一个已经安装好的包,如下Package: grubbyStatus: install ok installedPriority: requiredSecti.
2020-11-21 15:41:11
1098
转载 UOS系统中安装x11vnc远程桌面
UOS系统中安装x11vnc远程桌面一、UOS系统中安装x11vnc服务步骤1 :更新系统sudo apt-get update步骤2 :安装x11vncsudo apt-get install x11vnc -y步骤3 :设置VNC连接密码sudo x11vnc -storepasswd /etc/x11vnc.pass根据提示,输入并确认VNC连接的密码,密码保存在/etc/x11vnc.pass文件中。步骤4 :编写服务脚本sudo vim /li
2020-11-21 15:28:48
4298
原创 linux设置root用户远程登录
修改ssh服务配置文件vim /etc/ssh/sshd_config调整PermitRootLogin参数值为yes,如下:# Authentication:LoginGraceTime 2mPermitRootLogin yesStrictModes yes#MaxAuthTries 6#MaxSessions 10免密登陆将PermitEmptyPasswords参数值改为 yes# To disable tunneled clear text pas.
2020-11-21 15:22:55
556
1
原创 Linux中普通用户配置sudo权限(加密或免密)
配置步骤如下:1、登陆或切换到root用户下;2、添加sudo文件的写权限,命令是:chmod u+w /etc/sudoers3、编辑sudoers文件:vi /etc/sudoers找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (注:这里的xxx是你的用户名)你可以根据实际需要在sudoers文件中按照下面四行格式中任意一条进行添加:youuser ALL=(ALL) ALL
2020-11-14 15:30:25
1239
原创 python os.path 常用操作
os.path 模块主要用于获取文件的属性。以下是 os.path 模块的几种常用方法:方法 说明 os.path.abspath(path) 返回绝对路径 os.path.basename(path) 返回文件名 os.path.dirname(path) 返回文件路径 os.path.getatime(path) 返回最近访问时间(浮点型秒数) os.path.getmtime(path) 返回最近文件修改时间 os.path.getc
2020-11-14 15:24:53
304
原创 python ValueError: invalid literal for int() with base 10问题处理
问题描述:在用pthon写脚本得过程中,发生错误,ValueError: invalid literal for int() with base 10,这种错误是值得类型转换错误,int()函数是可以将字符串转换为整形,但是这个字符串如果带小数,比如‘1.23’,这个时候如果你再用int(‘1.23’)转换得话,就会出现上面报得错误。解决方案:这个时候可以用float()函数处理这个问题,在你不确定这个字符串是整形还是浮点数得情况下,用float()比较好,这样可以避免出现错误。[root
2020-11-14 15:02:37
3375
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人