这篇短文主要描述在LVS技术实践过程中的ubuntu环境下描述如何安装ipvsadm,以及遇到的问题以及解决方式
LVS是在Linux系统基础上建立虚拟服务器,实现真实服务器节点之间的负载均衡技术。它是基于内核实现的,2.6.X内核默认集成了LVS模块。笔者使用的Ubuntu12.04也已经含有该内核。
ipvs检查
查看内核版本:
sudo cat /proc/version
查看系统版本:
sudo cat /etc/issue
检验是否安装ipvs内核方法
modprobe -l grep ipvs
若出现:
kernel/net/netfilter/xt_ipvs.ko
kernel/net/netfilter/ipvs/ip_vs.ko
kernel/net/netfilter/ipvs/ip_vs_rr.ko
kernel/net/netfilter/ipvs/ip_vs_wrr.ko
kernel/net/netfilter/ipvs/ip_vs_lc.ko
kernel/net/netfilter/ipvs/ip_vs_wlc.ko
kernel/net/netfilter/ipvs/ip_vs_lblc.ko
kernel/net/netfilter/ipvs/ip_vs_lblcr.ko
kernel/net/netfilter/ipvs/ip_vs_dh.ko
kernel/net/netfilter/ipvs/ip_vs_sh.ko
kernel/net/netfilter/ipvs/ip_vs_sed.ko
kernel/net/netfilter/ipvs/ip_vs_nq.ko
kernel/net/netfilter/ipvs/ip_vs_ftp.ko
kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko
则表明系统已经集成该内核
安装ipvsadm
sudo apt-get install ipvsadm
安装后,通过 sudo ipvsadm 查看是否安装成功。
若出现:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
则表示安装成功。
注意:若只执行ipvsadm,可能出现:
Can not initialize ipvs: No space left on device
Are you sure that IP Virtual Server is built in the kernel or as module?
原因是权限不够
ipvsadm 配置
可通过下面语句配置ipvsadm是否随机启动,以none/master/backup/both四种的哪一种方式
sudo dpkg-reconfigure ipvsadm
安装keepalived
若不动态监测真实服务器的心跳,不需执行此步。若需安装,则可按如下步骤进行。
这里主要针对Ubuntu系统,redhat 和 Centos因系统区别,网上资料很多,此处不再叙述。
1.源码安装keepalived之前需要安装几个程序库
apt-get install libssl-dev
apt-get install openssl
apt-get install libpopt-dev
2.源码安装keepalived
下载:从www.keepalived.org/download.html下载keepalived for Linux version 1.2.13
解压 sudo tar -zxvf keepalived-1.2.13.tar.gz
进入keepalived-1.2.13,指定keepalived-1.2.13安装路径
cd keepalived-1.2.13
./configure -prefix=/usr/local/keepalived
编译 make
安装 make install
拷贝并配置keepalived为系统服务
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
然后将keepalived中/etc/rc.d/init.d/functions改为/lib/lsb/init-functions,将/etc/sysconfig/keepalived
改为/usr/local/keepalived/etc/sysconfig/keepalived,将daemon keepalived ${KEEPALIVED_OPTIONS}
改为daemon keepalived start。
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
3.安装daemon
apt-get install daemon
4.创建目录
mkdir -p /var/lock/subsys
5.设置为系统服务
update-rc.d keepalived defaults
6.系统启动或停止
service keepalived start|stop
相关命令
1.ipvsadm相关命令
ipvsadm可以定义一个集群服务,定义realserver,同时对集群进行查看。
a.定义集群服务
添加或修改集群服务:ipvsadm -A|E -t|u|f VIP:port -s 调度算法
-A 添加一个新的集群服务
-E 修改一个服务
-t 基于tcp的集群服务
-u 基于udp的集群服务
-f 基于防火墙标记的集群服务
-s 指定调度算法
-p 设定持久连接时间
-C 清空规则
-R 重新载入规则
-S 保存规则
删除一个集群服务: ipvsadm -D -t|u|f VIP:port
b.定义realserver
添加或者修改REALSERVER:ipvsadm -a|e -t|u|f VIP:port -r REALSERVER[:port] -g|-i|-m [-w 权重]
-g LVS-DR直接路由模型
-i LVS-TUN隧道模型
-m LVS-NAT模型
删除一个REALSERVER: ipvsadm -d -t|u|f VIP:port -r REALSERVER[:port]
c.集群查看
ipvsadm -L/l -n 查看
ipvsadm -lcn 查看持久连接状态
2.其他相关命令
添加/删除默认网关sudo route add/delete default gw 192.168.1.XXX
增加/删除网关sudo route add/del 192.168.1.XXX
增加子网 route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
增加子网 route delete -net 192.168.1.0 netmask 255.255.255.0 eth0
查看路由 sudo route -n
查看所有ip sudo ip a
解除绑定sudo ip -f inet addr delete 192.168.1.200/32 dev eth0
跟踪访问 sudo traceroute
8099端口监控 sudo tcpdum port 8099