要使用LVS的能力,只需要安装一个LVS的管理工具 ipvsadm
LVS的结构主要分为两个部分:
- 工作在内核空间的 IPVS 模块,LVS 的能力实际上都是由 IPVS 模块实现的
- 工作在用户空间的 ipvsadm 模块,其作用就是向用户提供一个命令接口,用于将配置的虚拟服务器、真实服务器等传给 IPVS 模块
ipvsadm 工具的使用:
ipvsadm 命令分为 命令(Commands)和选项(Options)两部分。
命令有两种形式,一个是全写,一个是缩写。
常用命令:
常用命令 | 命令说明 | 常用命令 | 命令说明 |
---|---|---|---|
-A --add-service | 添加一条虚拟服务记录 | -a --add-server | 指定一条内核虚拟服务器记录添加一条real server记录 |
-E --edit-service | 编辑一条虚拟服务记录 | -e --edit-server | 指定一条内核虚拟服务器记录编辑一条real server记录 |
-D --delete-service | 删除一条虚拟服务记录 | -d --delete-server | 指定一条内核虚拟服务器记录删除一条real server记录 |
-C --clear | 清空虚拟服务 ipvs 规则 | -L -l --list | 显示内核虚拟服务器 |
-R --restore | 恢复虚拟服务规则 | -Z --zero | 虚拟服务表计数器清零(--stats) |
-S --save | 保存虚拟服务规则 | --set tcp tcpfin udp | 设置连接超时时间,分别为TCP、TCPFIN(TCP关闭连接状态)、UDP连接超时时间 |
--start-daemon | 启动同步守护进程。在选项后面指定自己的角色,是master还是backup,住负载调度器会同步所有策略及连接状态到备负载调度器,当主故障,备可以立即接替工作 | ||
| --stop-daemon | 停止同步守护进程 |
选项同样有两种形式,一是全写,一是缩写。功能一致
常用选项:
常用选项 | 说明 | 常用选项 | 说明 |
---|---|---|---|
--tcp-service -t service-address | 服务IP使用TCP协议,IP[:port] | --udp-service -u service-address | 服务IP使用UDP协议,IP[:port] |
--fwmark-service -f fwmark |
使用整形的防火墙标识集群服务 可以结合 iptables 将多个调度器为目标的端口定义称为一个防火墙标识 ipvsadm 通过此关联标识,可以实现对一个IP多个端口调度 即实现后端服务器可以开放多个服务 | --scheduler -s sheduler | 参数为 rr / wrr / wlc / lblc / lblcr / dh / sh / sed / nq 其中之一,默认调度算法是wlc |
--pe engine | 设置持久化引擎如源IP,默认不设置 | --persistent -p [timeout] | 开启持久化,在指定时间timeout内,来自同一个IP的请求都会被转发到同一台real server |
--netmask -M netmask | 使用网络掩码来屏蔽持久化源IP范围,默认32位掩码,即所有源IP的请求都会享受持久化服务 | --real-server -r server-address |
指定real server 的 IP 和 port |
--gatewaying -g | 设置转发模式使用DR模式(direct routing),默认配置 | --ipip -i | 设置转发模式使用TUN模式 |
--masquerading -m | 设置转发模式使用NAT模式 | --weight -w weight | 设置real server 的权重 |
--u-threshold -x uthreshold | 设置转发请求的最大连接阈值,范围0~65535,当连接数超过上限,lvs则不会转发请求 | --l-threshold -x uthreshold | 设置请求转发的下连接阈值,范围0~65535,当连续数下降至指定值,LVS则继续提供服务,默认为0 |
--mcast-interface interface | 设置用于连接同步守护进程的组播接口 | --syncid sid | 设置连接同步守护进程的 SID 好,用于标识连接同步组,范围0~255 |
--connection -c | 输出 LVS 的当前连接,一般和 “ -l” 共用 | --timeout | 输入tcp 、 tcpfin 、udp 的超时信息,一般和 “ -l ” 共用 |
--daemon | 输出连接同步守护信息,一般和 “ -l” 共用 | --stats | 输出LVS 统计信息,一般和 “ -l” 共用 |
--rate | 输出转发速率信息,一般和 “ -l” 共用 | --exact | 显示数据包和字节数的准确值,扩大字符长度 |
--thresholds | 显示阈值信息,一般和 “ -l” 共用 | --persistent-conn | 输出持久化连接信息,一般和 “ -l” 共用 |
--numeric -n | 将输出的 IP 和 port 以数字化显示 | --sched-flags -b flags |
设置调度算法的范围标识,用于SH算法,两个标识:sh-fallback,如果 real server 不可用,将其转发到其他 real server sh-port 将原地址的端口号也加到散列键值对中 |
ipvsadm 命令实例