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

cluster(3)

(一) lvs-fullnat fullnat模式的性能虽然不如dr模式,但是,fullnat支持多vlan,再rs是不同的vlan的情况下,明显使用fullnat是很好的选择。 fullnat的基本原理:假定用户端的ip是cip,vs上有两个ip,一个是vip,还有lip,lip可以是不同网段的一组ip,rs的ip为rip,当客户请求进来,经过vs的时候,再vs出发生一次snat,将cip转化成lip,再由vs到rs的时候又发生了一次dnat,将vip转化成rip,同样的请求返回时,也经历了两次nat,所以一共经历4次nat,从而达到了可以支持多vlan的情况。 client (cip) --->  vs (vip,lip)  ---> rs (rip)          <---               <--- 但是在这种情况下,只有一台vs,会导致该vs的负载过大,加入keepalived也只能提高稳定性,并不能解决高吞吐量的问题,因此一般会进行一个lvs集群,keepalived可以对rs进行健康检查,在lvs集群前面加上一个路由器或者交换机,使用ospf协议,用户请求到达路由器(或者交换机)后,通过原地址、端口和目的地址、端口的hash,将链接分配到集群中的某一台LVS上,LVS通过内网向后端转发请求,后端再将数据返回给用户,整个会话完成。rs之间的session表要定期同步,以防止其中一个rs出现问题而造成session丢失的情况。 fullnat模式要重新编译内核,下面是步骤: 一 编译内核: 1 从官网上下载rpm源码包,并用rpmbuild重新编译为二进制包 kernel-2.6.32-220.23.1.el6.src.rpm Lvs-fullnat-synproxy.tar.gz 网址:kb.linuxvirtualserver.org 1 rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm        ###安装rpm包### 2 cd rpmbuild/                  ###安装完后会在当前目录下 3 yum install -y rpm-build 4 cd /root/rpmbuild/SPECS/ 5 rpmbuild -bp kernel.spec            ###解开源码打补丁### ************************************************************************** 6 yum install redhat-rpm-config  patchutils xmlto asciidoc binutils-devel newt-devel python-devel perl-ExtUtils-Embed hmaccalc    ###依赖性### ************************************************************************** 7 yum install asciidoc-8.4.5-4.1.el6.noarch.rpm newt-devel-0.52.11-3.el6.x86_64.rpm  slang-devel-2.2.1-1.el6.x86_64.rpm cd rpmbuild/SPECS/ ************************************************************************** 8 rpmbuild -bp kernel.spec        ###解决完依赖性后再次解开源码打补丁### 9 tar zxf Lvs-fullnat-synproxy.tar.gz 10 cd lvs-fullnat-synproxy/ 11 cp lvs-2.6.32-220.23.1.el6.patch ~/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/ 12 cd ~/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/ 13 patch -p1 < lvs-2.6.32-220.23.1.el6.patch    ###打补丁### 14 vim Makefile 内容: EXTRAVERSION = -220.23.1.el6    ###扩展版本,你所编译的版本### 15 make 16 make modules_install        ###安装模块 17 make i

01

CentOS 6.5 升级内核教程

1.下载源码包 网址:http://www.kernel.org 在首页可以看到有stable,longterm等版本,一般选择下载longterm版本,因为此版本为提供长期支持的稳定版,因此我选择3.12.16. [root@CentOS-BinaryDev~]# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.16.tar.xz 2.解压并进入目录 [root@CentOS-BinaryDev~]# tar -xf linux-3.12.16.tar.xz [root@CentOS-BinaryDev~]# cd linux-3.12.16 3.更新当前系统 [root@CentOS-BinaryDev~]# yum update [root@CentOS-BinaryDev~]# yum upgrade 4.安装编译内核所需要的软件包 [root@CentOS-BinaryDev~]# yum groupinstall “Development Tools” [root@CentOS-BinaryDev~]# yum install ncurses-devel [root@CentOS-BinaryDev~]# yum install qt-devel [root@CentOS-BinaryDev~]# yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel 5.查看当前系统内核 [root@CentOS-BinaryDev~]# uname -r 2.6.32-358.11.1.el6.x86_64 6.将当前系统内核的配置文件拷贝到当前目录 [root@CentOS-BinaryDev~]#cp /boot/config-2.6.32-358.11.1.el6.x86_64 .config 7.使用当前系统内核配置,并自动接受每个新增选项的默认设置 [root@CentOS-BinaryDev~]# sh -c ' yes “” | make oldconfig' 8.编译 [root@CentOS-BinaryDev~]# make bzImage [root@CentOS-BinaryDev~]# make modules [root@CentOS-BinaryDev~]# make modules_install 9.安装 [root@CentOS-BinaryDev~]# make install 如果出现少量ERROR可以忽略 10.修改Grub引导顺序 [root@CentOS-BinaryDev~]# vim /etc/grub.conf 一般新内核的位置都在第一个,所以设置default=0. 11.重启后查看内核版本号 [root@CentOS-BinaryDev~]# uname -r 3.12.16 12.如果失败,转至第5步,在重新开始之前,需要清理上次编译的现场 [root@CentOS-BinaryDev~]# make mrproper

02

python 远程执行代码 fabr

fabric应用:                1、fab -H 172.23.177.40,172.23.177.41 host_type                2、fab host_type check_ver                3、role: 当client较多时可以定义角色,然后按角色进行操作。                     #!/usr/bin/pyhton                     from fabric.api import *                     env.user = 'root'                     env.password = 'vagrant'                     env.roledefs = {                          'web': ['172.23.177.41','172.23.177.43'],                          'dns': ['172.23.177.46','177.23.177.73']                     }                     def test():                         run('uname -a')                run:                     fab -R web test                result:                     [172.23.177.41] Executing task 'test'                     [172.23.177.41] run: uname -a                     [172.23.177.41] out: Linux salt-master 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux                     [172.23.177.41] out:                     [172.23.177.43] Executing task 'test'                     [172.23.177.43] run: uname -a                     [172.23.177.43] out: Linux salt-minion-3 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux                     [172.23.177.43] out:                     Done.                     Disconnecting from 172.23.177.43... done.                     Disconnecting from 172.23.177.41... done.                     #从结果可以看到,fab只执行了属于web组的client。                4、extend属性                     from fabric.api import env, run                     env.hosts.extend(['host3', 'host4'])                     def test():                         run('uname -r')                     When this fabfile is run as fab -H host1,host2 mytask, env.hosts will then contain ['host1', 'host2', 'host3', 'host4'] at the time that mytask is executed.                5、fabfile中没有定义client,可以在命令行中指定                     fab mytask:hosts='172.23.177.41;172.23.177.46'                6、使用task方式:                     from fabric.api import

01

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券