首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Linux下的双网卡绑定bond0 em1 em2

大家好,又见面了,我是你们的朋友全栈君。一、什么是bonding Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余 二、bonding应用方向 1、网络负载均衡 对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding 2、网络冗余 对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。bonding 也能为网卡提供冗余的支持。把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份 三、bonding实验环境及配置 1、实验环境 系统为:CentOS,使用2块网卡(em1、em2 ==> bond0)来实现bonding技术 2、bonding配置 第一步:先查看一下内核是否已经支持bonding 1)如果内核已经把bonding编译进内核,那么要做的就是加载该模块到当前内核;其次查看ifenslave该工具是否也已经编译 modprobe -l bond* 或者 modinfo bonding modprobe bonding lsmod | grep ‘bonding’ echo ‘modprobe bonding &> /dev/null’ >> /etc/rc.local(开机自动加载bonding模块到内核) which ifenslave 注意:默认内核安装完后就已经支持bonding模块了,无需要自己手动编译 2)如果bonding还没有编译进内核,那么要做的就是编译该模块到内核 (1)编译bonding tar -jxvf kernel-XXX.tar.gz cd kernel-XXX make menuconfig 选择 ” Network device support ” -> ” Bonding driver support “ make bzImage make modules && make modules_install make install (2)编译ifenslave工具 gcc -Wall -O -I kernel-XXX/include ifenslave.c -o ifenslave 第二步:主要有两种可选择(第1种:实现网络负载均衡,第2种:实现网络冗余) 例1:实现网络冗余(即:mod=1方式,使用em1与em2) (1)编辑虚拟网络接口配置文件(bond0),并指定网卡IP vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.254 BROADCAST=192.168.0.255 NETMASK=255.255.255.0 NETWORK=192.168.0.0 GATEWAY=192.168.0.1 USERCTL=no TYPE=Ethernet 注意:建议不要指定MAC地址 vi /etc/sysconfig/network-scripts/ifcfg-em1 DEVICE=em1 BOOTPROTO=none ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes 注意:建议不要指定MAC地址 vi /etc/sysconfig/network-scripts/ifcfg-em2 DEVICE=em2 BOOTPROTO=none ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes 注意:建议不要指定MAC地址 (2)编辑模块载入配置文

02

KVM手动及自动化安装

KVM包括很多部件:首先,它是一个Linux内核模块(现在包括在主线中)用于转换处理器到一种新的用户 (guset) 模式。用户模式有自己的ring状态集合,但是特权ring0的指令会陷入到管理器(hypervisor)的代码。由于这是一个新的处理器执行模型,代 码不需要任何的改动。   除了处理器状态转换,这个内核模块同样处理很小一部分低层次的模拟,比如MMU注册(用于管理VM)和一部分PCI模拟的硬件。 在可预见的未来,Qemu团队专注于硬件模拟和可移植性,同时KVM团队专注于内核模块(如果某些部分确实有性能提升的话,KVM会将一小部分模拟代码移 进来)和与剩下的用户空间代码的交互。 kvm-qemu可执行程序像普通Qemu一样:分配RAM,加载代码,不同于重新编译或者调用calling KQemu,它创建了一个线程(这个很重要);这个线程调用KVM内核模块去切换到用户模式,并且去执行VM代码。当遇到一个特权指令,它从新切换会 KVM内核模块,该内核模块在需要的时候,像Qemu线程发信号去处理大部分的硬件仿真。 这个体系结构一个比较巧妙的一个地方就是客户代码被模拟在一个posix线程,这允许你使用通常Linux工具管理。如果你需要一个有2或者4核的虚拟 机,kvm-qemu创建2或者4个线程,每个线程调用KVM内核模块并开始执行。并发性(若果你有足够多的真实核)或者调度(如果你不管)是被通用的 Linux调度器,这个使得KVM代码量十分的小 当一起工作的时候,KVM管理CPU和MEM的访问,QEMU仿真硬件资源(硬盘,声卡,USB,等等)当QEMU单独运行时,QEMU同时模拟CPU和 硬件。

02

KVM 基于系统的流量控制(Qos)---Linux

1 限制流出速度 限制流出速度,主要通过tc这个工具,常用的有三个队列: tbf队列,令牌桶队列,适用于流量×××; cbq队列,分类的队列,用于实现精细的qos控制,配置复杂; htb队列,分层的令牌桶队列,用于实现精细的qos控制,配置比cbq简单些; 通过tbf限制流程速度的例子: tc qdisc add dev eth0 root tbf rate 51200kbit latency 50ms minburst 200k burst 200k 限制网卡eth0流出速度为51200kbit,正确的设置方法,和minburst这个参数有很大的关系,不同的硬件环境和系统需要具体调试。 通过htb实现不同目标地址的限速 删除 tc qdisc del dev eth0 root tbf 修改 tc qdisc change dev eth0 root tbf rate 2200kbit latency 5000ms burst 1540 查看当前队列 tc -s -d qdisc ls

02

Linux中查看系统CPU、内存、磁盘、网卡、硬件槽信息的命令

linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并做了分类,实例解说。 查看系统信息 uname -a 显示系统名、节点名称、操作系统的发行版号、操作系统版本、运行系统的机器 ID 号 cpu lscpu命令,查看的是cpu的统计信息. blue@blue-pc:~$ lscpu Architecture:          i686            #cpu架构 CPU op-mode(s):        32-bit, 64-bit Byte Order:            Little Endian   #小尾序 CPU(s):                4               #总共有4核 On-line CPU(s) list:   0-3 Thread(s) per core:    1               #每个cpu核,只能支持一个线程,即不支持超线程 Core(s) per socket:    4               #每个cpu,有4个核 Socket(s):             1               #总共有1一个cpu Vendor ID:             GenuineIntel    #cpu产商 intel CPU family:            6 Model:                 42 Stepping:              7 CPU MHz:               1600.000 BogoMIPS:              5986.12 Virtualization:        VT-x            #支持cpu虚拟化技术 L1d cache:             32K L1i cache:             32K L2 cache:              256K L3 cache:              6144K 查看/proc/cpuinfo,可以知道每个cpu信息,如每个CPU的型号,主频等。 #cat /proc/cpuinfo processor    : 0 vendor_id    : GenuineIntel cpu family    : 6 model        : 42 model name    : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz ..... 上面输出的是第一个cpu部分信息,还有3个cpu信息省略了。 内存 概要查看内存情况 free -m              total       used       free     shared    buffers     cached Mem:          3926       3651        274          0         12        404 -/+ buffers/cache:       3235        691 Swap:         9536         31       9505 这里的单位是MB,总共的内存是3926MB。 查看内存详细使用 # cat /proc/meminfo MemTotal:        4020868 kB MemFree:          230884 kB Buffers:            7600 kB Cached:           454772 kB SwapCached:          836 kB ..... 查看内存硬件信息 dmidecode -t memory # dmidecode 2.11 SMBIOS 2.7 present. Handle 0x0008, DMI type 16, 23 bytes Physical Memory Array     Location: System Board Or Motherboard ....     Maximum Capacity: 32 GB .... Handle 0x000A, DMI type 17, 34 bytes .... Memory Device     Array Handle: 0x0008     Error Information Handle: Not Provided     Total Width: 64 bits     Data Width: 64 bits     Size: 4096 MB ..... 磁盘 查看硬

03
领券