Linux LVS keepalived 负载均衡
这个是我给公司部署的LVS+keepalived的负载均衡解决方案,只是下面有的没有添加那么多的而已。 添加了两个有代表的就可以了,其余的同方法自己可以添加 lvs说明:目前有三种负载均衡技术(VS/NAT、VS/TUN和VS/DR); 八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。 在调度器的实现技术中,IP负载均衡技术是效率最高的。在已有的IP负载均衡技术中有通过网络地址转换(Network AddressTranslation)将一组服务器构成一个高性能的、高可用的虚...
Linux LVS 集群 中的 IP负载均衡技术
1.前言 在前面文章中,讲述了可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要,指出 负载均衡是在负载调度器的实现技术中效率最高的。在已有的负载均衡技术中,主要有通过网络转换(Network AddressTranslation)将一组构成一个高性能的、高可用的虚拟,我们称之为VS/NAT技术(Virtual Server viaNetwork AddressTranslation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我...
Linux 下架设 PPTP VPN服务器
1.1 所需软件及下载地址1.1.1 -----------------------------------------------------最稳定的linux 1.1.2 ------------------------------------------2.6.19内核 1.1.3 --------------内核的mppe-mppc补丁 1.1.4 ---------------------------------------------PPP主程序 1.1.5 -----------------...
Linux下架设 L2TP IPSec VPN 服务器(X509)
1.说明 1.1 所需软件及下载地址 1.2 实现过程及功能特性2.架设 2.1 准备工作 2.2架设L2TP IPSec VPN服务器 2.2.1 查看是否有/dev/ppp 设备文件 2.2.2 安装openssl 2.2.3 安装 ppp 2.2.4 安装OpenSwan 2.2.5安装xl2tpd 2.2.6VPNGateway的设置 2.2.7使用Openssl为各个机器颁发证书 2.2.8Windows端的设置 2.2.9 使用预共享密钥的IPSec设置 1 说明1.1 所需软件及下载地址1....
vim 编辑器 教程
这篇写了在不同工作下 VIM 的一些基本技巧即插入(insert mode), 模式(command mode), 存取文件等。目的是帮助刚刚接触 VIM 的新手更加有效率的这个出色的编辑器。 说明:在这篇文章里面,C-X 代表 Ctrl + X就是按住 Ctrl 键然后再按 X。而且你可以在很多情况下使用 :help command 来获得大部分命令的帮助,这个是 VIM 的内部帮助文件命令。 高效率移动 在插入模式之外 基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就像哑...
VIM 查找替换归纳总结
1,简单替换表达式 替换可以在全文中用一个单词替换另一个单词: :%s/four/4/g % 范围前缀表示在所有行中执行替换。最后的 g 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可 如果你有一个象 thirtyfour 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成thirty4。要解决这个问题,用 \ 来指定匹配单词开头: :%s/\four/4/g 显然,这样在处理 fourty 的时候还是会出错。用 \ 来解决这个问题: :%s/\four\/4/g...
Linux 源代码 查看工具介绍
a. Windows系统用Source Insight,Linux系统用Source Navigator。 b. vim或emacs编辑器,配合cscope、ctags、etags等交叉索引。 c. vim或emacs编辑器,配合grep、egrep等文本搜索工具,不过最好要对源代码目录结构有所熟悉 d. LXR,以网页的形式通过浏览器浏览,安装复杂(debian下安装容易,用超级牛力的apt-get) e. GNU global,可以在命令行用,也可以生成hypertext,类似lxr,但更省事。...
Linux 内核源码中的 do{} while(0)
为什么在内核中碰到很多 #defines ... do{ ... } while(0)? 有以下几点原因: 空语句在编译时候会出现警告,所以有必要用#define FOO do { } while(0). 这样做是为了能够在里面定义局部变量 这样做是为了能够在条件语句中使用复杂的宏定义. 例如下面这段代码: #define FOO(x) \ printf(arg is %s\n, x); \ do_something_useful(x); 如果这样用: if (blah == 2) FOO(blah);...
Linux模块编程 系列之二 熟悉特定的宏
这些宏定义在linux/module.h下 MODULE_AUTHOR(name) 定义驱动的编程者,name为string MODULE_LICENSE(license) 定义驱动的license,一般为GPL,或相关公司的license MODULE_DESCRIPTION(desc) 对驱动程序的描述,string MODULE_SUPPORTED_DEVICE(name) 驱动程序所支持的设备,string MODULE_PARM(var,type) 提供在运行时通过控制台将参数传递给模块 (在...
Linux模块编程 系列之一 编译与安装
1.编译相关的问题 为了区别与应用程序,内核模块在编译的时候都需要定义如下几个宏 __KERNEL__ MODULE 由于内核中有很多inline限定的函数,所以在编译的时候,应该对编译器的优化机制有所了解。GCC通过带参数-On(0,1,2,3,4)告知 编译器优化等级。如果不做优化,那么inline将不起作用;但在-O2以上,GCC主动的将某些非inline函数内联,也将导致问题,所以编译模块 时,应将优化等级设在-O 与 O2之间,以确保inline特性的正确性。 如果模块由多个.c文件实现,最终...
LSE 配置备忘
摸索,总结出LSE(Liberty Sim Envi)编译可视化的一中方法。 本文是用LSE自带的IA64的例子来做的。 首先我是使用标准的ls-build、ls-link来做,build可以通过,但link阶段报告visualizer相关的函数找不到。注释所有visualizer相关的函数后link通过,生成Xsim可执行文件,可以在命令行下跑IA64的程序了。 是什么原因visualizer相关函数找不到呢?于是查看了下LSEvisualizer.pdf,原来LSE支持可视化编译执行,那么visua...
Linux 物理内存 管理 的理解
唉,我真笨,终于明白了Linux物理内存的模式。 总是想,物理内存还得内存管,一旦要分配新数据结构,就成了鸡蛋问题。 心得如下: 首先,假设我们有4G+的物理内存。 Linux下物理内存用page结构管理。理解后抽象出的简化page结构如下: struct page page { struct page * next;/* 下一个页内存区*/ long used;/* 是否被使用 */ }; /* sizeof(page) = 8 bytes */ -------------------- 在系统初始化...

