12.07.2015 Views

利用红帽Piranha 方案实现WEB 负载均衡 - LinuxTone.Org

利用红帽Piranha 方案实现WEB 负载均衡 - LinuxTone.Org

利用红帽Piranha 方案实现WEB 负载均衡 - LinuxTone.Org

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Http://www.linuxtone.orgIT 运 维 专 家 网利 用 红 帽 Piranha 方 案 实 现 WEB 负 载 均 衡作 者 :NetSeek http://www.linuxtone.org (IT 运 维 专 家 网 | 集 群 架 构 | 性 能 调 优 )欢 迎 转 载 , 转 载 时 请 务 必 以 超 链 接 形 式 标 明 文 章 原 始 出 处 和 作 者 信 息 及 本 声 明 .更 新 时 间 :2009‐01‐12实 验 平 台 : CentOS release 5.2 (Final)实 验 目 标 :快 速 撑 握 和 理 解 Piranha 方 案 , 并 利 用 15 分 钟 构 建 WEB 高 可 用 负 载 均 衡 解 决 方 案 .结 构 :LVS‐ACTIVE:192.168.1.210LVS‐BACKUP: 192.168.1.211LVS‐VIP: 192.168.1.212Realsever: 192.168.1.204,192.168.1.205一 . Piranha 方 案 基 本 简 绍 .1. Piranha 方 案 优 点 :1.1.1 配 置 简 洁 高 效 :配 置 简 便 一 个 lvs.conf 配 置 文 件 即 可 搞 定 ( 类 keepalived 方 案 .)1.1.2 WEB 配 置 界 面 .WEB 配 置 对 于 那 些 不 懂 LVS 配 置 的 人 员 来 说 非 常 吸 引 力 , 你 几 乎 只 要 花 15 分 钟 就 可以 配 置 好 一 个 完 美 的 负 载 均 衡 及 高 可 用 性 方 案 .1.1.3 完 整 的 功 能 :主 备 LVS (Load Balancer) 的 Heartbeat 和 HA (pulse, send_arp)Load Balancer 和 Real Server 间 进 程 服 务 的 Heartbeat (nanny)IPVS 功 能 (lvsd)IPVS 的 管 理 (ipvsadm)2. Piranha 方 案 原 理 结 构 描 述 :Piranha 方 案 是 基 于 LVS 基 础 上 设 计 的 一 套 负 载 均 衡 高 可 用 解 决 方 案 .LVS 运 行 在 一 对 有 相 似 配 置 的 计 算 机 上 :一 个 作 为 活 动 LVS Router(Active LVS Router),一 个 作 为 备 份 LVS Router(Backup LVS Router)。活 动 LVS Router 服 务 有 两 个 角 色 :* 均 衡 负 载 到 真 实 服 务 器 上 。* 检 查 真 实 服 务 器 提 供 的 服 务 是 否 正 常 。备 份 LVS Router 用 来 监 控 活 动 的 LVS Router, 以 备 活 动 的 LVS Router 失 败 时 由 备 份 LVSRouter 接 管 。联 系 我 们 :NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com守 住 每 一 天 : MSN: liuyubj520@hotmail.com 联 系 我 们 ! 热 情 期 待 你 的 加 入 !


Http://www.linuxtone.orgIT 运 维 专 家 网‣ Pulse:Pulse 进 程 运 行 在 活 动 LVS Router 和 备 份 LVS Router 上 。在 备 份 LVS Router 上 ,pulse 发 送 一 个 心 跳 (heartbeat) 到 活 动 LVS Router 的 公网 接 口 上 以 检 查 活 动 LVS Router 是 否 正 常 。在 活 动 LVS Router 上 ,pulse 启 动 lvs 进 程 并 响 应 来 自 于 备 份 LVS Router 的 心 跳 。‣ lvsd:lvs 进 程 调 用 ipvsadm 工 具 去 配 置 和 维 护 IPVS 路 由 表 , 并 为 每 一 个 在 真 实 服 务 器上 的 虚 拟 服 务 启 动 一 个 nanny 进 程 。‣ nanny:每 一 个 nanny 进 程 去 检 查 真 实 服 务 器 上 的 虚 拟 服 务 状 态 , 并 将 故 障 情 况 通 知 lvs进 程 。 假 如 一 个 故 障 被 发 现 ,lvs 进 程 通 知 ipvsadm 在 IPVS 路 由 表 中 将 此 节 点 删除 。‣ send_arp:如 果 备 份 LVS Router 未 收 到 来 自 于 活 动 LVS Router 的 响 应 ,它 将 调 用 send_arp 将 虚 拟 IP 地 址 再 分 配 到 备 份 LVS Router 的 公 网 接 口 上 。并 在 公 网 接 口 和 局 域 网 接 口 上 分 别 发 送 一 个 命 令 去 关 掉 活 动 LVS Router 上 的 lvs进 程 。 同 时 启 动 自 己 的 lvs 进 程 来 调 度 客 户 端 请 求 。3. Piranha 方 案 基 本 套 件 安 装 :#yum install ipvsadm modcluster piranha system‐config‐cluster php php‐cli php‐common联 系 我 们 :NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com守 住 每 一 天 : MSN: liuyubj520@hotmail.com 联 系 我 们 ! 热 情 期 待 你 的 加 入 !


Http://www.linuxtone.orgIT 运 维 专 家 网4. 配 置 文 件 介 绍 :/etc/sysconfig/ha/lvs.cf // 由 http://ip:3636 web 界 面 配 置 的 配 置 文 件 写 入 此 文 件 ./etc/init.d/piranha‐gui start // 启 动 piranha 服 务 的 WEB 配 置 界 面 ./etc/init.d/pulse// 启 动 piranha 服 务 读 取 的 就 是 /etc/sysconfig/ha/lvs.cf.二 . Piranha 配 置配 置 主 LVS 服 务 器 .# vi /etc/sysctl.conf 找 到 下 面 行 // 启 用 数 据 转 发 .net.ipv4.ip_forward = 0 将 0 改 成 1,net.ipv4.ip_forward = 1执 行 如 下 命 令 来 应 用 :sysctl –p通 过 WEB 界 面 配 置 Piranha 服 务 .# /etc/init.d/piranha‐gui start // 启 动 Piranha 服 务 .#/usr/sbin/piranha‐passwd // 设 置 密 码 , 请 设 置 你 的 piranha 服 务 WEB 配 置 登 陆 密 码 .http://192.168.1.210:3636/ 输 入 用 户 名 : piranha 及 刚 才 设 置 的 密 码 登 陆 .登 陆 后 , 选 择 Global Settings 这 是 对 LVS 的 配 置Primary server public IP 输 入 公 网 IP:192.168.1.210, 应 用 后 按 ACCEPT 按 钮 保 存 设 置 。通 过 WEB 配 置 主 LVS 的 信 息1. 配 置 主 LVS2. 配 置 备 份 LVS联 系 我 们 :NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com守 住 每 一 天 : MSN: liuyubj520@hotmail.com 联 系 我 们 ! 热 情 期 待 你 的 加 入 !


Http://www.linuxtone.orgIT 运 维 专 家 网1. 配 置 添 加 LVS( VIP 信 息 )2. 配 置 Realserver联 系 我 们 :NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com守 住 每 一 天 : MSN: liuyubj520@hotmail.com 联 系 我 们 ! 热 情 期 待 你 的 加 入 !


Http://www.linuxtone.orgIT 运 维 专 家 网点 击 ” 编 辑 ” 添 加 具 体 的 Realsever 信 息 .5. 启 动 LVS 服 务 pulse# /etc/init.d/pulse startStarting pulse: [ OK ]如 果 不 报 错 , 表 示 启 动 成 功 !到 此 LVS 的 服 务 器 已 经 配 置 完 成 了 启 动 两 个 程 序1、piranha‐gui 是 用 来 配 置 LVS 的2、pulse 是 用 来 启 动 LVS 的6. 备 份 LVS 安 装 与 配 置备 份 LVS 安 装 同 主 LVS 安 装 方 法 同 样 . 直 接 将 lvs.conf 拷 贝 到 相 应 的 目 录 下 :#scplvs.cf root@192.168.1.211:/etc/sysconfig/ha/# /etc/init.d/pulse start 启 动 服 务 即 可 .7. 配 置 Realserver联 系 我 们 :NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com守 住 每 一 天 : MSN: liuyubj520@hotmail.com 联 系 我 们 ! 热 情 期 待 你 的 加 入 !


Http://www.linuxtone.orgIT 运 维 专 家 网DR 模 式 配 置 文 件……........ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP/sbin/route add ‐host $WEB_VIP dev lo:0echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announcesysctl ‐p >/dev/null 2>&1echo "RealServer Start OK"…………………….Tunnel 模 式 配 置 文 件 .……………………………………ifconfig tunl0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP/sbin/route add ‐host $WEB_VIP dev tunl0echo "1" >/proc/sys/net/ipv4/conf/tunl0/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/tunl0/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announcesysctl ‐p >/dev/null 2>&1………………………………………….正 确 配 置 , 并 启 动 服 务 .8. 测 试 与 日 志 分 析 .# ipvsadm –ln // 查 看 LVS 连 接 状 态 .IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags‐> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.1.212:80 wrr persistent 30‐> 192.168.1.204:80 Route 1 0 0‐> 192.168.1.205:80 Route 1 0 0# tail ‐f /var/log/messages【 注 】 服 务 切 换 测 试 :停 掉 主 LVS 服 务 上 的 pulse 查 看 master 是 否 能 正 常 接 管 . 测 试 过 程 中 多 注意 分 析 日 志 .在 Linuxtone 网 站 编 写 heartbeat+lvs 方 案 的 时 候 还 需 要 自 己 送 一 个 arping 命 令告 诉 网 关 我 的 MAC 发 生 变 化 了 . 但 是 Piranha 方 案 能 自 动 送 一 个 arp 命 令 .三 . LVS 配 置 文 件 详 解 及 相 关 技 巧 介 绍联 系 我 们 :NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com守 住 每 一 天 : MSN: liuyubj520@hotmail.com 联 系 我 们 ! 热 情 期 待 你 的 加 入 !


Http://www.linuxtone.orgIT 运 维 专 家 网1. lvs.conf 配 置 及 详 解 :#http://www.linuxtone.org#Written by:NetSeek date:2009‐1‐11#MSN:cnseek@msn.comserial_no = 72 # 序 号primary = 192.168.1.210 # 主 LVS 的 公 网 IPprimary_private = 10.0.0.1 # 内 部 ip 地 址 , 用 于 心 跳 检 测 .service = lvs# 服 务 名 称 , 可 以 自 己 定 义backup_active = 1# 是 否 有 备 份backup = 192.168.1.211 # 备 份 LVS 的 公 网 IPheartbeat = 1# 是 否 开 启 心 跳heartbeat_port = 539 # 心 跳 的 UDP 端 口keepalive = 6 # 心 跳 间 隔 ( 秒 )deadtime = 18 # 如 果 主 LVS 节 点 在 deadtime( 秒 ) 后 没 有 答 复 ,那 么 备 份 LVS 路 由 器 节 点 就 会 发 起 失 效 转 移 。network = direct#LVS 类 型 (direct,tunnel,nat)# 如 果 是 nat#lvs 的 类 型 network = nat,#nat_router = 10.0.0.254 eth1:1# 浮 动 ip 地 址 以 及 对 应 设 备#nat_nmask = 255.255.255.0# 浮 动 ip 掩 码debug_level = NONE#debug 信 息 级 别monitor_links = 0 # 是 否 开 启 realserver 的 监 视 功 能 ,和 后 面 的 scheduler( 调 度 算 法 ) 以 及 load_monitor 相 关virtual lvs1 { # 虚 拟 服 务 的 名 称 , 可 自 定 义 .active = 1address = 192.168.1.212 eth0:1vip_nmask = 255.255.255.255port = 80persistent = 30pmask = 255.255.255.255send = "GET / HTTP/1.0\r\n\r\n"expect = "HTTP"本 答 复 , 用 来 判 断 realserver 是 否 工 作 正 常use_regex = 0load_monitor = none# 是 否 激 活# 虚 拟 服 务 所 绑 定 的 ip(vip) 以 及 设 备 名#vip 相 对 应 的 掩 码# 虚 拟 服 务 的 端 口# 使 用 持 久 稳 固 的 服 务 时 间# 如 果 使 用 持 久 会 话 , 设 置 子 网 掩 码# 给 realserver 发 送 的 验 证 字 符 串# 服 务 器 正 常 运 行 时 应 该 返 回 的 文#expect 中 是 否 使 用 正 则 表 达 式#LVS 路 由 器 能 够 使 用 rup 或ruptime 来 监 视 各 个 真 正 服 务 器 的 载 量 。 如 果 你 从 拉 下 菜 单 中 选 择 了 rup, 每 个 真正 服 务 器 就 必 须 运 行 rstatd 服 务 。 如 果 选 择 了 ruptime, 每 个 真 正 服 务 器 就 必 须 运行 rwhod 服 务 。scheduler = wrrprotocol = tcptimeout = 6中 移 除 realserver 所 必 须 经 过 的 时 间 ( 秒 )#LVS 调 度 算 法# 虚 拟 服 务 使 用 的 协 议 类 型#realserver 失 效 后 从 lvs 路 由 条 目reentry = 15# 移 除 以 后 的 realserver 重 新 加 入联 系 我 们 :NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com守 住 每 一 天 : MSN: liuyubj520@hotmail.com 联 系 我 们 ! 热 情 期 待 你 的 加 入 !


Http://www.linuxtone.orgIT 运 维 专 家 网lvs 路 由 条 目 所 必 须 经 过 的 时 间 ( 秒 )quiesce_server = 0# 当 选 择 了 Quiesce server 单 选 按钮 时 , 无 论 何 时 某 个 新 的 真 正 服 务 器 节 点 联 机 , 最 少 连 接 表 都 会 被 重 设 为 零 , 因 此活 跃 LVS 路 由 器 就 会 选 路 发 送 所 有 请 求 , 如 同 所 有 真 正 服 务 器 都 被 重 新 加 入 群 集 一样 。 这 个 选 项 防 止 了 新 服 务 器 在 进 入 群 集 时 对 大 量 连 接 应 接 不 暇 。server rs1 { #realsever 服 务 名 称 , 可 自 定 义 ,如 :rs1.linuxtone.orgaddress = 192.168.1.204 #realserver 的 ip 地 址active = 1# 是 否 激 活weight = 1# 一 个 表 明 和 集 合 内 其 它 主 机 相比 而 言 的 主 机 能 力 的 整 数 值 。 这 个 值 可 以 是 任 意 的 , 但 是 请 把 它 当 作 和 群 集 中 其 它真 正 服 务 器 的 比 例 对 待}server rs2 {address = 192.168.1.205active = 1weight = 1}}2. 修 改 Piranha 登 陆 用 户 名 及 监 听 端 口 ?启 动 /etc/init.d/piranha‐gui, 实 际 上 是 执 行 如 下 配 置 文 件 ./usr/sbin/piranha_gui ‐f /etc/sysconfig/ha/conf/httpd.conf#cd /etc/sysconfig/ha 下 目 录 介 绍 .lvs.cf //Piranha 方 案 实 现 LVS 核 心 配 置 文 件 .conf/{httpd.conf, piranha.passwd}web/ // 此 目 录 下 存 放 WEB 配 置 界 面 的 PHP 相 关 程 序 ,如 果 想 对 WEB 界 面 美 化 , 请 修 改 文 件 .mdules/ //apache 一 些 相 关 模 块 .# vi /etc/sysconfig/ha/conf/httpd.conf ( 将 原 端 口 3636 改 为 81,你 也 可 以 自 定 义 此 端 口 )默 认 WEB 界 面 是 能 过 piranha 账 号 登 陆 , 如 何 创 建 自 己 定 义 的 账 号 登 陆 呢 ?# htpasswd ‐c /etc/sysconfig/ha/conf/lvs.pass netseek// 上 述 命 令 是 添 加 用 户 netseek, 并 将 账 号 信 息 写 入 lvs.pass 这 个 文 件 .# vi /etc/sysconfig/ha/conf/httpd.conf联 系 我 们 :NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com守 住 每 一 天 : MSN: liuyubj520@hotmail.com 联 系 我 们 ! 热 情 期 待 你 的 加 入 !


Http://www.linuxtone.orgIT 运 维 专 家 网# /etc/init.d/piranha‐gui restart 重 启 服 务 即 可 生 效 .上 述 技 巧 只 是 简 单 的 抛 砖 引 玉 , 你 可 以 修 改 WEB 服 务 的 PHP 相 关 程 序 , 添 加 一 些 流 量或 者 WEB 连 接 状 态 监 控 的 代 码 . 还 可 以 自 己 给 apache 添 加 一 些 你 自 己 写 的 模 块 , 总 之 你可 以 再 现 有 的 piranha 上 做 很 多 的 改 造 去 实 现 你 想 要 的 更 完 美 的 系 统 .更 多 技 巧 请 实 时 关 注 : http://bbs.linuxtone.org/ 负 载 均 衡 版 块 .3. 如 果 启 动 /etc/init.d/piranha-gui start若 遇 到 以 下 错 误 提 示 :Starting piranha-gui: (13)Permission denied: make_sock: could not bind to address[::]:3636关 闭 掉 selinux 跟 firewall四 . 相 关 参 考 文 档1. LVS 高 可 用 性 方 案 汇 总 [Linuxtone 为 您 提 供 了 各 种 高 可 用 负 载 均 衡 解 决 方 案 ]2. LVS 连 接 状 态 监 控3. Piranha 官 方 参 考 文 档 推 荐 阅 读本 文 基 于 开 源 分 享 精 神 之 上 方 便 大 家 理 解 和 了 解 红 帽 Piranha 方 案 , 希 望 能 快 速 帮 你 解决 工 作 中 的 一 些 问 题 , 如 有 不 足 之 处 请 见 谅 ! 同 时 欢 迎 各 位 对 WEB 架 构 , 集 群 规 划等 相 关 的 感 兴 趣 的 朋 友 请 来 加 入 Linuxtone 这 个 社 区 。 我 们 热 情 期 待 你 的 加 入 !http://www.linuxtone.org IT 运 维 专 家 网 ! 自 由 + 平 等 + 互 助 + 友 爱 = 分 享 快 乐 !联 系 我 们 :NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com守 住 每 一 天 : MSN: liuyubj520@hotmail.com 联 系 我 们 ! 热 情 期 待 你 的 加 入 !

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!