Virtual Server Administration
Linux Virtual Server (LVS) for Red Hat Enterprise Linux
엮음 5
초록
Introduction
- Red Hat Enterprise Linux Installation Guide — Provides information regarding installation of Red Hat Enterprise Linux 5.
- Red Hat Enterprise Linux Deployment Guide — Provides information regarding the deployment, configuration and administration of Red Hat Enterprise Linux 5.
- Red Hat Cluster Suite Overview — Provides a high level overview of the Red Hat Cluster Suite.
- Configuring and Managing a Red Hat Cluster — Provides information about installing, configuring and managing Red Hat Cluster components.
- Logical Volume Manager Administration — Provides a description of the Logical Volume Manager (LVM), including information on running LVM in a clustered environment.
- Global File System: Configuration and Administration — Provides information about installing, configuring, and maintaining Red Hat GFS (Red Hat Global File System).
- Global File System 2: Configuration and Administration — Provides information about installing, configuring, and maintaining Red Hat GFS2 (Red Hat Global File System 2).
- Using Device-Mapper Multipath — Provides information about using the Device-Mapper Multipath feature of Red Hat Enterprise Linux 5.
- Using GNBD with Global File System — Provides an overview on using Global Network Block Device (GNBD) with Red Hat GFS.
- Red Hat Cluster Suite Release Notes — Provides information about the current release of Red Hat Cluster Suite.
1. Feedback 링크 복사링크가 클립보드에 복사되었습니다!
Virtual_Server_Administration(EN)-5 (2010-02-08T16:55)
Virtual_Server_Administration(EN)-5 (2010-02-08T16:55)
1장. LVS (Linux Virtual Server) 개요 링크 복사링크가 클립보드에 복사되었습니다!
- 실제 서버 전역에 걸쳐 로드 밸런스 유지
- 각각의 실제 서버에서 서비스 무결성 확인
1.1. A Basic LVS Configuration 링크 복사링크가 클립보드에 복사되었습니다!
그림 1.1. A Basic LVS Configuration
eth0:1로 알리아스될 수 있습니다. 다른 방법으로 각각의 가상 서버를 서비스마다 분리된 장치와 연관시킬 수 있습니다. 예를 들어, HTTP 소통량은 eth0:1에서 처리될 수 있으며, FTP 소통량은 eth0:2에서 처리될 수 있습니다.
1.1.1. 실제 서버에서 데이터 복사 및 데이터 공유 링크 복사링크가 클립보드에 복사되었습니다!
- 실제 서버 풀을 통한 데이터 동기화
- 데이터 공유 액세스에 필요한 토폴로지에 세번째 레이어 추가
1.1.1.1. 데이터 동기화를 위한 실제 서버 설정 링크 복사링크가 클립보드에 복사되었습니다!
rsync와 같은 프로그램을 사용하여 일정 간격으로 모든 노드에 걸쳐 변경된 데이터를 복사할 수 있습니다.
1.2. A Three-Tier LVS Configuration 링크 복사링크가 클립보드에 복사되었습니다!
그림 1.2. A Three-Tier LVS Configuration
1.3. LVS 스케줄링 개요 링크 복사링크가 클립보드에 복사되었습니다!
1.3.1. 스케줄링 알고리즘 링크 복사링크가 클립보드에 복사되었습니다!
- Round-Robin Scheduling
- 각각의 요청을 실제 서버의 풀로 순차적으로 배분하는 방식입니다. 이러한 알고리즘을 사용하여 용량이나 부하량을 고려하지 않고 모든 실제 서버를 동일하게 다룹니다. 이러한 스케줄링 모델은 라운드 로빈 DNS 방식과 유사하지만 호스트 기반이 아닌 네트워크 연결 기반의 보다 세분화된 방식입니다. 또한 LVS 라운드 로빈 스케줄링은 캐쉬된 DNS 쿼리에 의해 불균등하게 분산되지 않습니다.
- Weighted Round-Robin Scheduling
- Distributes each request sequentially around the pool of real servers but gives more jobs to servers with greater capacity. Capacity is indicated by a user-assigned weight factor, which is then adjusted upward or downward by dynamic load information. Refer to 1.3.2절. “서버 가중치 및 스케줄링 ” for more on weighting real servers.가중치 기반 라우드 로빈 스케줄링은 풀에 있는 실제 서버의 용량이 다를 경우 선택할 수 있는 사항입니다. 하지만, 요청 부하량이 아주 다양할 경우, 더 가중치가 있는 서버가 요청 공유량보다 더 많이 응답할 수 있습니다.
- Least-Connection
- 가장 접속이 적은 실제 서버로 더 많은 요청을 배분하는 방식입니다. 이는 동적인 스케줄링 알고리즘 유형 중 하나로, IPVS 테이블을 통해 실제 서버로의 라이브 연결을 추적하기 때문에 요청 부하에 극도로 다양한 처리량이 있을 경우 유용합니다. 각각의 노드에 대략 비슷한 처리 용량이 있는 실제 서버 풀의 경우에도 적합합니다. 서버 그룹에 다른 처리 용량이 있을 경우, 가중치 기반 최소 접속 스케줄링이 더 적합합니다.
- Weighted Least-Connections (default)
- Distributes more requests to servers with fewer active connections relative to their capacities. Capacity is indicated by a user-assigned weight, which is then adjusted upward or downward by dynamic load information. The addition of weighting makes this algorithm ideal when the real server pool contains hardware of varying capacity. Refer to 1.3.2절. “서버 가중치 및 스케줄링 ” for more on weighting real servers.
- Locality-Based Least-Connection Scheduling
- 목적지 IP와 관련하여 가장 접속이 적은 서버로 더 많은 요청을 배분하는 방식입니다. 이러한 알고리즘은 프록시-캐쉬 서버 클러스터에서 사용됩니다. 이는 서버가 서버 처리 용량을 초과하지 않고 서버가 반부하 상태에 있지 않을 경우 IP 주소를 최소로 부하된 실제 서버로 할당하여 IP 주소의 패킷을 해당 주소의 서버로 라우팅합니다.
- Locality-Based Least-Connection Scheduling with Replication Scheduling
- 목적지 IP와 관련하여 가장 접속이 적은 서버로 더 많은 요청을 배분하는 방식입니다. 이러한 알고리즘은 프록시-캐쉬 서버 클러스터에 사용됩니다. 대상 IP 주소를 실제 서버 노드의 서브셋으로 묶는 다는 점에서 LBLC 스케줄링과 다릅니다. 이는 서브셋에 있는 가장 접속이 적은 서버로 요청을 라우트합니다. 목적지 IP 주소에 대해 모든 노드가 처리 용량을 초과할 경우, 가장 접속이 적은 실제 서버를 실제 서버의 전체 풀에서 목적지 IP의 실제 서버에 대한 서브셋으로 추가하여 해당 목적지 IP 주소에 대한 새로운 서버를 복사합니다. 최고로 과부화된 노드는 실제 서버 서브셋에서 빠지게 됩니다.
- Destination Hash Scheduling
- 정적 해쉬 테이블에 있는 목저지 IP를 찾아 실제 서버의 풀로 요청을 배분하는 방식입니다. 이러한 알고리즘은 프록시-캐쉬 서버 클러스터에서의 사용을 위해 고안되었습니다.
- Source Hash Scheduling
- 정적 해쉬 테이블에 있는 소스 IP를 찾아 실제 서버의 풀로 요청을 배분하는 방식입니다. 이러한 알고리즘은 여러 방화벽이 있는 LVS 라우터에 사용됩니다.
1.3.2. 서버 가중치 및 스케줄링 링크 복사링크가 클립보드에 복사되었습니다!
1.4. 라우팅 방식 링크 복사링크가 클립보드에 복사되었습니다!
1.4.1. NAT 라우팅 링크 복사링크가 클립보드에 복사되었습니다!
그림 1.3. LVS Implemented with NAT Routing
1.4.2. 직접 라우팅 링크 복사링크가 클립보드에 복사되었습니다!
그림 1.4. LVS Implemented with Direct Routing
1.4.2.1. 직접 라우팅 및 ARP 한계 링크 복사링크가 클립보드에 복사되었습니다!
arptables_jf 또는 arptables 패킷 필터링 도구를 사용하여 실행합니다:
arptables_jf는 ARP가 VIP를 실제 서버와 관련짓지 않게 합니다.iptables방식은 첫번째의 실제 서버에 있는 VIP 설정을 하지 않음으로 ARP 문제를 전적으로 회피합니다.
arptables or iptables in a direct routing LVS environment, refer to 3.2.1절. “직접 라우팅 및 arptables_jf” or 3.2.2절. “직접 라우팅 및 iptables”.
1.5. 지속성 및 방화벽 표시 기능 링크 복사링크가 클립보드에 복사되었습니다!
1.5.1. 지속성 링크 복사링크가 클립보드에 복사되었습니다!
1.5.2. 방화벽 표시 기능 링크 복사링크가 클립보드에 복사되었습니다!
1.6. LVS — 블록 다이어그램 링크 복사링크가 클립보드에 복사되었습니다!
그림 1.5. LVS Components
pulse 데몬은 활성 및 비활성 LVS 라우터에서 실행됩니다. 백업 라우터에서 pulse는 활성 라우터의 공개 인터페이스로 heartbeat를 보내어 활성 LVS 라우터가 올바르게 작동하는 지를 확인합니다. 활성 라우터에서 pulse는 lvs 데몬을 시작하고 백업 LVS 라우터에서의 하트비트 (heartbeat) 쿼리에 응답합니다.
lvs 데몬이 시작되면 이는 ipvsadm 유틸리티를 호출하여 커널에 있는 IPVS (IP Virtual Server) 라우팅 테이블을 설정 및 관리하고 각각의 실제 서버에 있는 설정된 가상 서버에 필요한 nanny 프로세스를 시작합니다. 각각의 nanny 프로세스는 하나의 실제 서버에서 설정된 서비스의 상태를 확인하고 실제 서버에 있는 서비스가 잘 작동하지 않을 경우 lvs 데몬에 보고합니다. 작동 불량 사항이 발견되면, lvs 데몬은 ipvsadm에 지시하여 IPVS 라우팅 테이블에서 실제 서버를 삭제합니다.
send_arp를 호출하여 장애조치를 시작하고, 활성 LVS 라우터에 있는 lvs 데몬을 종료하기 위해 공개 및 개인 네트워크 인터페이스를 통해 활성 LVS 라우터에 명령을 보낸 후, 설정된 가상 서버의 요청을 수락하기 위해 백업 LVS 라우터에 있는 lvs 데몬을 시작합니다.
1.6.1. LVS Components 링크 복사링크가 클립보드에 복사되었습니다!
pulse” shows a detailed list of each software component in an LVS router.
1.6.1.1. pulse 링크 복사링크가 클립보드에 복사되었습니다!
/etc/rc.d/init.d/pulse script. It then reads the configuration file /etc/sysconfig/ha/lvs.cf. On the active router, pulse starts the LVS daemon. On the backup router, pulse determines the health of the active router by executing a simple heartbeat at a user-configurable interval. If the active router fails to respond after a user-configurable interval, it initiates failover. During failover, pulse on the backup router instructs the pulse daemon on the active router to shut down all LVS services, starts the send_arp program to reassign the floating IP addresses to the backup router's MAC address, and starts the lvs daemon.
1.6.1.2. lvs 링크 복사링크가 클립보드에 복사되었습니다!
lvs 데몬이 일단 pulse에 의해 호출되면 활성화된 LVS 라우터에서 실행됩니다. 이는 /etc/sysconfig/ha/lvs.cf 설정 파일을 읽으며, ipvsadm 유틸리티를 호출하여 IPVS 라우팅 테이블을 생성하고 관리하며 각각의 설정된 LVS 서비스 용 nanny 프로세스를 지정합니다. nanny가 실제 서버가 다운되었다고 보고하면 lvs가 ipvsadm 유틸리티를 지시하여 IPVS 라우팅 테이블에서 실제 서버를 삭제합니다.
1.6.1.3. ipvsadm 링크 복사링크가 클립보드에 복사되었습니다!
lvs 데몬은 IPVS 라운팅 테이블에 있는 항목을 추가, 변경, 삭제하기 위해 ipvsadm 명령을 호출하여 LVS를 설정 및 관리합니다.
1.6.1.4. nanny 링크 복사링크가 클립보드에 복사되었습니다!
nanny 모니터링 데몬은 활성 LVS 라우트에서 실행됩니다. 이 데몬을 통해, 활성화된 라우터는 실제 서버 상태를 확인하며, 옵션으로 작업량을 모니터합니다. 분리된 프로세스는 실제 서버에 정의된 각각의 서비스에 대해 실행됩니다.
1.6.1.5. /etc/sysconfig/ha/lvs.cf 링크 복사링크가 클립보드에 복사되었습니다!
1.6.1.6. Piranha Configuration Tool 링크 복사링크가 클립보드에 복사되었습니다!
/etc/sysconfig/ha/lvs.cf LVS 설정 파일을 관리하기 위한 기본값 도구입니다.
1.6.1.7. send_arp 링크 복사링크가 클립보드에 복사되었습니다!
2장. LVS 초기 설정 링크 복사링크가 클립보드에 복사되었습니다!
참고
2.1. LVS 라우터 상의 설정 서비스 링크 복사링크가 클립보드에 복사되었습니다!
chkconfig, ncurses 기반 프로그램 ntsysv, 그래픽 Services Configuration Tool. 이러한 도구를 사용하시려면 root 액세스가 필요합니다.
참고
su - 명령 뒤에 root 암호를 입력합니다. 예:
su - root password
$ su - root password
piranha-gui서비스 (주 노드에서만)pulse서비스sshd서비스
iptables 서비스를 활성화해야 합니다.
chkconfig를 사용하며 각각의 서비스에 대해 다음과 같은 명령을 입력합니다:
/sbin/chkconfig --level 35 daemon on
/sbin/chkconfig --list
주의
chkconfig does not actually start the daemon. To do this use the /sbin/service command. See 2.3절. “Piranha Configuration Tool 서비스 시작 ” for an example of how to use the /sbin/service command.
ntsysv and the Services Configuration Tool, refer to the chapter titled "Controlling Access to Services" in the Red Hat Enterprise Linux System Administration Guide.
2.2. Piranha Configuration Tool 암호 설정 링크 복사링크가 클립보드에 복사되었습니다!
/usr/sbin/piranha-passwd
주의
2.3. Piranha Configuration Tool 서비스 시작 링크 복사링크가 클립보드에 복사되었습니다!
/etc/rc.d/init.d/piranha-gui에 있는 piranha-gui 서비스를 시작 또는 재시작합니다. 이를 실행하기 위해 root로 다음과 같은 명령을 입력합니다:
/sbin/service piranha-gui start
/sbin/service piranha-gui restart
/usr/sbin/piranha_gui -> /usr/sbin/httpd. For security reasons, the piranha-gui version of httpd runs as the piranha user in a separate process. The fact that piranha-gui leverages the httpd service means that:
- 시스템에 Apache HTTP Server가 설치되어 있어야 합니다.
service명령으로 Apache HTTP Server를 정지하거나 재시작하면piranha-gui서비스가 중지됩니다.
주의
/sbin/service httpd stop 또는 /sbin/service httpd restart 명령이 LVS 라우터에서 실행될 경우, 다음과 같은 명령을 사용하여 piranha-gui 서비스를 시작해야 합니다.
/sbin/service piranha-gui start
piranha-gui service is all that is necessary to begin configuring LVS. However, if you are configuring LVS remotely, the sshd service is also required. You do not need to start the pulse service until configuration using the Piranha Configuration Tool is complete. See 4.8절. “LVS 시작하기 ” for information on starting the pulse service.
2.3.1. Piranha Configuration Tool 웹 서버 포트 설정 링크 복사링크가 클립보드에 복사되었습니다!
piranha-gui 웹 서버 설정 파일 /etc/sysconfig/ha/conf/httpd.conf의 섹션 2에 있는 Listen 3636 행을 변경합니다.
http://localhost:3636을 엽니다. localhost를 주요 LVS 라우터의 호스트명이나 IP 주소로 대체하여 웹 브라우져에서 Piranha Configuration Tool를 사용할 수 있습니다.
piranha를 입력하고 piranha 란에 piranha-passwd를 사용하여 암호를 설정합니다.
2.4. Piranha Configuration Tool로의 액세스 제한 링크 복사링크가 클립보드에 복사되었습니다!
/etc/sysconfig/ha/web/secure/.htaccess. After altering the file you do not have to restart the piranha-gui service because the server checks the .htaccess file each time it accesses the directory.
Order deny,allow Allow from all
Order deny,allow
Allow from all
.htaccess 파일을 변경하여 루프백 장치 (127.0.0.1)에서만 액세스되게 합니다. 루프백 장치에 관한 보다 자세한 내용은 Red Hat Enterprise Linux Reference Guide에 있는 네트워크 스크립트 장에서 참조하시기 바랍니다.
Order deny,allow Deny from all Allow from 127.0.0.1
Order deny,allow
Deny from all
Allow from 127.0.0.1
Order deny,allow Deny from all Allow from 192.168.1.100 Allow from 172.16.57
Order deny,allow
Deny from all
Allow from 192.168.1.100
Allow from 172.16.57
주의
.htaccess 파일을 편집하면 /etc/sysconfig/ha/web/secure/ 디렉토리에 있는 설정 페이지로의 액세스가 제한될 수 있으나 로그인과 /etc/sysconfig/ha/web/에 있는 도움말 페이지로의 액세스가 제한되지는 않습니다. 이러한 디렉토리로의 액세스를 제한하기 위해 /etc/sysconfig/ha/web/secure/.htaccess 파일과 동일하게 order, allow, deny를 사용하여 /etc/sysconfig/ha/web/ 디렉토리에 있는 .htaccess 파일을 생성합니다.
2.5. 패킷 포워딩 활성화 링크 복사링크가 클립보드에 복사되었습니다!
/etc/sysctl.conf에 있는 net.ipv4.ip_forward = 0 행을 다음과 같이 변경합니다:
net.ipv4.ip_forward = 1
net.ipv4.ip_forward = 1
/sbin/sysctl net.ipv4.ip_forward
1이 출력되면 IP 포워딩이 활성화된 것입니다. 0 값이 출력될 경우, 다음과 같은 명령을 사용하여 수동으로 IP 포워딩을 활성화시킬 수 있습니다:
/sbin/sysctl -w net.ipv4.ip_forward=1
2.6. 실제 서버에서 서비스 설정 링크 복사링크가 클립보드에 복사되었습니다!
httpd나 FTP 또는 Telnet 서비스 용 xinetd가 있습니다.
sshd 데몬을 설치하고 실행하는 것이 유용할 수 도 있습니다.
3장. LVS 설정 링크 복사링크가 클립보드에 복사되었습니다!
3.1. NAT LVS 네트워크 링크 복사링크가 클립보드에 복사되었습니다!
- 네트워크 레이아웃
- NAT 라우팅을 사용한 LVS 용 토플로지는 클러스터가 공개 네트워크로 하나의 액세스 지점만을 필요로하기 때문에 네트워크 레이아웃에서 설정하는 것이 가장 간편합니다. 실제 서버는 모든 요청을 LVS 라우터를 통해 전달하므로 실제 서버의 개인 네트워크 상에 있게 됩니다.
- 하드웨어
- NAT 토플로지는 실제 서버가 Linux 컴퓨터가 아니어도 올바르게 작동하게 하므로 하드웨어와 관련하여 가장 유연한 방법입니다. NAT 토플로지에서 각각의 실제 서버는 LVS 라우터에만 응답하기 때문에 하나의 NIC만을 필요로 합니다. 반면 LVS 라우터는 두 개의 네트워크 사이에서 소통량을 라우트 하기 위해 각각 두개의 NIC를 필요로 합니다. 이러한 토플로지는 LVS 라우터에서 네트워크 병목 현상을 가져오기 때문에, 기가바이트 이더넷 NIC는 각각의 LVS 라우터에서 사용되어 LVS 라우터가 처리할 수 있는 대역폭을 증가시킵니다. 기가바이트 이더넷이 LVS 라우터에서 사용될 경우, 실제 서버를 LVS 라우터로 연결하는 모든 스위치의 부하량을 효과적으로 처리하기 위해 최소 두개의 기가바이트 이더넷이 있어야 합니다.
- 소프트웨어
- NAT 토폴로지 설정에서
iptables을 사용해야 하기 때문에, Piranha Configuration Tool 외에 소프트웨어 설정을 해야 할 수 있습니다. 특히, FTP 서비스 및 방화벽 표시 기능의 사용에서는 요청을 올바르게 라우트하기 위해 LVS 라우터에 대해 수동으로 추가 설정을 해야 합니다.
3.1.1. NAT를 사용한 LVS 용 네트워크 인터페이스 설정 링크 복사링크가 클립보드에 복사되었습니다!
eth0) will be on the 192.168.26/24 network (I know, I know, this is not a routable IP, but let us pretend there is a firewall in front of the LVS router for good measure) and the private interfaces which link to the real servers (eth1) will be on the 10.11.12/24 network.
/etc/sysconfig/network-scripts/ifcfg-eth0, could look something like this:
/etc/sysconfig/network-scripts/ifcfg-eth1 파일은 다음과 같이 나타납니다:
중요
중요
3.1.2. 실제 서버에서 라우팅 링크 복사링크가 클립보드에 복사되었습니다!
참고
/etc/sysconfig/network-scripts/ifcfg-eth0 file could look similar to this:
주의
GATEWAY= 행에 하나 이상의 네트워크 인터페이스가 설정되어 있을 경우, 첫번째로 나타나는 것이 게이트웨이가 됩니다. 따라서 eth0와 eth1이 설정되어 있고 eth1이 LVS에 사용될 경우, 실제 서버가 요청을 올바르게 라우트하지 못할 수 도 있습니다.
/etc/sysconfig/network-scripts/ 디렉토리에 있는 네트워크 인터페이스에서 ONBOOT=no를 설정하거나 또는 처음으로 나타나는 인터페이스에 게이트웨이가 올바르게 설정되어 있는 지를 확인하여 관련 없는 네트워크 인터페이스를 비활성화시키는 것이 좋습니다.
3.1.3. LVS 라우터에서 NAT 라우팅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
주의
eth0:1 or eth1:1 by manually editing network scripts or using a network configuration tool. Instead, use the Piranha Configuration Tool as shown in 4.4절. “GLOBAL SETTINGS” and 4.6.1절. “VIRTUAL SERVER 하부 섹션”.
pulse service as shown in 4.8절. “LVS 시작하기 ”. Once pulse is up and running, the active LVS router will begin routing requests to the pool of real servers.
3.2. 직접 라우팅을 통한 LVS 링크 복사링크가 클립보드에 복사되었습니다!
- 네트워크 레이아웃
- 직접 라우팅 LVS 설정에서 LVS 라우터는 들어오는 요청을 받아 이를 처리하기 위해 실제 서버로 올바르게 라우트해야 합니다. 그 후 실제 서버는 이 요청을 클라이언트에게 직접 라우트합니다. 예를 들어, 클라이언트가 인터넷 상에서 LVS 라우터를 통해 실제 서버로 패킷을 전송할 경우, 실제 서버는 인터넷을 통해 클라이언트에게로 직접 도달할 수 있어야 합니다. 이는 인터넷으로 패킷을 전달하기 위해 실제 서버에 대한 게이트웨이를 설정하여 실행될 수 있습니다. 서버 풀에 있는 각각의 실제 서버는 최대 처리량 및 확장성을 허용하여 각각의 분리된 게이트웨이(및 인터넷으로 자체적 연결을 사용하는 각각의 게이트웨이)를 갖게 됩니다. 전형적인 LVS 설정의 경우 실제 서버는 하나의 게이트웨이 (즉 하나의 네트워크 연결)를 통해 통신할 수 있습니다.
중요
필요하지 않는 설정을 복잡하게 추가시키고 LVS 라우터에 네트워크 부하량을 추가함으로 NAT 라우팅에서 발생했던 네트워크 병목 현상을 다시 나타나게 하여 실제 서버 용 게이트웨이로서 LVS 라우터 사용을 권장하지 않습니다. - 하드웨어
- 직접 라우팅을 사용한 LVS 시스템의 하드웨어 필요 요건은 기타 다른 LVS 토폴로지와 비슷합니다. 들어오는 요청을 처리하고 실제 서버에 필요한 로드 밸런싱을 실행하기 위해 LVS 라우터가 Red Hat Enterprise Linux에서 실행되고 있어야 하는 반면, 올바른 작동을 위해 실제 서버가 Linux를 사용하는 컴퓨터에서 실행될 필요는 없습니다. LVS 라우터에는 (백업 라우터가 있는 지의 여부에 따라) 각각 하나 또는 두개의 NIC가 있어야 합니다. 설정 완화를 위해 두 개의 NIC를 사용하여 소통량을 분할할 수 있습니다 — 들어오는 요청은 하나의 NIC에 의해 처리되고 다른 NIC에서는 실제 서버로 패킷을 라우트합니다.실제 서버가 LVS 라우터를 무시하고 클라이언트에게 나가는 패킷을 직접 전달하기 때문에 인터넷으로의 게이트웨이가 있어야 합니다. 성능 및 가용성을 최대화하기 위해 각각의 실제 서버는 클라이언트가 연결되어 있는 네트워크에 자체적으로 접속되는 분리된 게이트웨이로 연결될 수 있습니다 (예: 인터넷 또는 인트라넷).
- 소프트웨어
- There is some configuration outside of Piranha Configuration Tool that needs to be done, especially for administrators facing ARP issues when using LVS via direct routing. Refer to 3.2.1절. “직접 라우팅 및
arptables_jf” or 3.2.2절. “직접 라우팅 및iptables” for more information.
3.2.1. 직접 라우팅 및 arptables_jf 링크 복사링크가 클립보드에 복사되었습니다!
arptables_jf, each real server must have their virtual IP address configured, so they can directly route packets. ARP requests for the VIP are ignored entirely by the real servers, and any ARP packets that might otherwise be sent containing the VIPs are mangled to contain the real server's IP instead of the VIPs.
arptables_jf 방식으로 어플리케이션은 실제 서버가 사용되고 있는 각각의 개별적 VIP 또는 포트로 바인드할 수 있습니다. 예를 들어, arptables_jf 방식은 시스템 상의 다른 VIP로 바인드되게 하기 위해 Apache HTTP Server의 여러 경우를 허용합니다. iptables 옵션으로 arptables_jf를 사용하는 데에 있어서 성능상의 이점을 있습니다.
arptables_jf 방식을 사용하면 VIP는 Red Hat Enterprise Linux 시스템 설정 도구를 사용하여 부팅시 시작되도록 설정할 수 없게 됩니다.
- 실제 서버에서 각각의 가상 IP 주소에 해당하는 ARP 테이블 항목을 생성합니다 (real_ip는 실제 서버와 통신하기 위해 Director가 사용하는 IP입니다; 주로 이는
eth0로 IP 바인드됩니다):arptables -A IN -d <virtual_ip> -j DROP arptables -A OUT -s <virtual_ip> -j mangle --mangle-ip-s <real_ip>
arptables -A IN -d <virtual_ip> -j DROP arptables -A OUT -s <virtual_ip> -j mangle --mangle-ip-s <real_ip>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이로인해 실제 서버는 가상 IP 주소에 대한 모든 ARP 요청을 무시하게 되며 가상 IP가 들어있는 나가는 ARP 응답을 변경하고 대신 서버의 실제 IP를 포함시킵니다. 모든 VIP에 해당하는 ARP 요청에 응답하는 노드만이 현재 활성 LVS 노드에 있게 됩니다. - 각각의 실제 서버에서 이러한 작업을 완료한 후, 다음과 같은 명령을 사용하여 ARP 테이블 항목을 저장합니다:
service arptables_jf savechkconfig --level 2345 arptables_jf onchkconfig명령으로 부팅시 — 네트워크가 시작되기 전 arptables 설정을 시스템으로 다시 불러올 수 있습니다. - IP 알리아스를 생성하기 위해
ifconfig를 사용하여 모든 실제 서버에 있는 가상 IP 주소를 설정합니다. 예:ifconfig eth0:1 192.168.76.24 netmask 255.255.252.0 broadcast 192.168.79.255 up
# ifconfig eth0:1 192.168.76.24 netmask 255.255.252.0 broadcast 192.168.79.255 upCopy to Clipboard Copied! Toggle word wrap Toggle overflow 또는iproute2ip유틸리티를 사용합니다 예:ip addr add 192.168.76.24 dev eth0
# ip addr add 192.168.76.24 dev eth0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 부분에서 언급하였듯이 가상 IP 주소는 Red Hat 시스템 설정 도구를 사용하여 부팅시 시작되도록 설정할 수 없습니다. 이러한 문제를 해결하기 위해/etc/rc.d/rc.local에 이 명령을 사용합니다. - Configure Piranha for Direct Routing. Refer to 4장. Piranha Configuration Tool를 사용하여 LVS 라우터 설정 for more information.
3.2.2. 직접 라우팅 및 iptables 링크 복사링크가 클립보드에 복사되었습니다!
iptables 방화벽 규칙을 생성하여 직접 라우팅 방식을 사용하여 ARP 문제를 해결할 수 있습니다. iptables를 사용하여 직접 라우팅을 설정하려면 투명 프록시 (transparent proxy)를 생성하는 규칙을 추가하여 시스템에 VIP 주소가 없더라도 실제 서버가 VIP 주소로 보내는 패킷을 서비스하게 됩니다.
iptables 방식은 설정에 있어서 arptables_jf 방식과 비슷합니다. 이 방식으로 가상 IP 주소가 활성 LVS director에만 있게 되므로 LVS ARP 문제가 발생하지 않게 할 수 있습니다.
iptables 방식의 사용에서 arptables_jf와 비교해 볼 때 모든 패킷을 포워딩/마스커레이딩하는데 있어서 오버헤드로 인해 성능면에서 문제가 발생합니다.
iptables 방식을 사용하여 포트를 재사용할 수 없습니다. 예를 들어, 포트 80으로 바인드된 두개의 분리된 Apache HTTP Server 서비스를 실행할 수 없습니다. 왜냐하면 이러한 서비스는 가상 IP 주소 대신 INADDR_ANY로 바인드되어야 하기 때문입니다.
iptables 방식을 사용하여 직접 라우팅을 설정하려면 다음과 같은 절차를 실행합니다:
- 각각의 실제 서버에서 사용하고자 하는 모든 VIP, 포트, 프로토콜 (TCP or UDP) 조합에 대해 다음과 같은 명령을 실행합니다:
iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT이 명령으로 실제 서버는 VIP로 목적지가 지정된 패킷을 처리하여 주어진 곳으로 포트하게 합니다. - 실제 서버에 설정 사항 저장:
service iptables save chkconfig --level 2345 iptables on
# service iptables save # chkconfig --level 2345 iptables onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 명령은 부팅시 — 네트워크가 시작되기 전 시스템이iptables설정을 다시 읽어오게 합니다.
3.3. 설정 종합 링크 복사링크가 클립보드에 복사되었습니다!
중요
eth0가 공개 네트워크에 연결되어 있고 eth1이 개인 네트워크에 연결되어 있을 경우 백업 LVS 라우터에 있는 동일한 장치는 동일한 네트워크로 연결해야 합니다.
3.3.1. 일반적인 LVS 네트워킹 정보 링크 복사링크가 클립보드에 복사되었습니다!
- 실제 네트워크 인터페이스 활성화
- 실제 네트워크 인터페이스를 활성화하기 위해 root로 다음과 같은 명령을 사용합니다, 여기서 N은 해당 인터페이스 번호로 대체합니다.(
eth0및eth1)/sbin/ifup ethN주의
Do not use theifupscripts to bring up any floating IP addresses you may configure using Piranha Configuration Tool (eth0:1oreth1:1). Use theservicecommand to startpulseinstead (see 4.8절. “LVS 시작하기 ” for details). - 실제 네트워크 인터페이스 비활성화
- 실제 네트워크 인터페이스를 비활성화시키기 위해 root로 다음과 같은 명령을 사용합니다, 여기서 N은 해당 인터페이스 번호로 대체합니다. (
eth0및eth1)/sbin/ifdown ethN - 네트워크 인터페이스 상태 확인
- 어떤 네트워크 인터페이스가 활성화되어 있는 지를 확인하려면 다음과 같은 명령을 사용합니다:
/sbin/ifconfig컴퓨터에 해당하는 라우팅 테이블을 보려면, 다음과 같은 명령을 실행합니다:/sbin/route
3.4. 다중 포트 서비스 및 LVS 링크 복사링크가 클립보드에 복사되었습니다!
iptables에 의해 실행되어야 합니다.
3.4.1. 방화벽 표시 기능 지정 링크 복사링크가 클립보드에 복사되었습니다!
iptables를 사용해야 합니다.
iptables 규칙이 있어야 합니다.
/sbin/service iptables status
iptables이 실행되지 않을 경우, 바로 프롬프트가 다시 나타납니다.
iptables가 활성화되어 있을 경우, 규칙 모음을 보여줍니다. 규칙이 나타나면 다음과 같은 명령을 입력합니다:
/sbin/service iptables stop
/etc/sysconfig/iptables의 내용을 확인하고 저장해 두어야할 규칙을 안전한 장소에 복사해 둡니다.
/sbin/modprobe ip_tables
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 --dport 80 -j MARK --set-mark 80
/sbin/iptables -t mangle-A PREROUTING -p tcp -d n.n.n.n/32 --dport 443 -j MARK --set-mark 80
iptables before issuing rules for the first time.
iptables 명령에서 n.n.n.n은 HTTP 및 HTTPS 가상 서버에 해당하는 유동 IP로 대체해야 합니다. 이러한 명령은 포트 상의 VIP에서 인식되는 모든 소통량에 대해 80이라는 방화벽 표시를 지정하는 효과를 갖게 되고, 80이라는 방화벽 표시는 IPVS에 의해 차례로 인식되어 올바르게 포워드됩니다.
주의
3.5. FTP 설정 링크 복사링크가 클립보드에 복사되었습니다!
3.5.1. FTP 작동 방법 링크 복사링크가 클립보드에 복사되었습니다!
- 능동 연결 모드
- 능동 연결 모드를 사용할 경우, 서버는 클라이언트 컴퓨터에 있는 포트 20에서 상위 범위의 포트로 클라이언트로의 데이터 연결을 오픈합니다. 서버에 있는 모든 데이터는 이 연결로 지나가게 됩니다.
- 수동 연결 모드
- 수동 연결 모드를 사용할 경우, 클라이언트는 FTP 서버에게 10,000 이상의 포트에서 수동 연결 모드를 사용할 것을 요청합니다. 그 뒤 서버는 이와 같은 특정 세션을 위해 해당 포트를 바인드하고 클라이언트에게 포트 번호를 전달합니다. 클라이언트는 데이터 연결을 위해 새로 바인드된 포트를 엽니다. 클라이언트에 의한 각각의 데이터 요청으로 데이터 연결이 분리됩니다. 현재 대부분의 FTP 클라이언트는 서버에서 데이터를 요청할 때 수동 연결 모드를 사용합니다.
참고
3.5.2. LVS 라우팅에 미치는 영향 링크 복사링크가 클립보드에 복사되었습니다!
3.5.3. 네트워크 패킷 필터 규칙 생성 링크 복사링크가 클립보드에 복사되었습니다!
iptables rules for FTP service, review the information in 3.4.1절. “방화벽 표시 기능 지정 ” concerning multi-port services and techniques for checking the existing network packet filtering rules.
21 in the Firewall Mark field. See 4.6.1절. “VIRTUAL SERVER 하부 섹션” for details.
3.5.3.1. 능동 연결 모드 규칙 링크 복사링크가 클립보드에 복사되었습니다!
iptables 명령에서는 LVS 라우터가 IPVS가 알지 못하는 실제 서버에서 나가는 연결을 허용하게 합니다:
/sbin/iptables -t nat -A POSTROUTING -p tcp -s n.n.n.0/24 --sport 20 -j MASQUERADE
iptables command, n.n.n should be replaced with the first three values for the floating IP for the NAT interface's internal network interface defined in the GLOBAL SETTINGS panel of Piranha Configuration Tool.
3.5.3.2. 수동 연결 모드 규칙 링크 복사링크가 클립보드에 복사되었습니다!
주의
/etc/vsftpd.conf에 다음과 같은 행을 추가합니다:
pasv_min_port=10000
pasv_max_port=20000
/etc/vsftpd.conf에 다음과 같은 행을 추가하여 연결시 클라이언트에게 보여지는 VIP에 실제 서버 IP 주소를 덮어씁니다. 예:
pasv_address=n.n.n.n
1024:65535 아래에 있는 명령에서 10000:20000을 변경하여 사용 가능한 모든 비보안적인 포트를 포함시켜서 이러한 숫자 범위를 늘릴 수 있습니다.
iptables 명령은 포트 상의 유동 IP에서 인식한 모든 소통량에 대해 21이라는 방화벽 표시를 지정하는 효과를 갖게 되고, 21이라는 방화벽 표시는 IPVS에 의해 차례로 인식되어 올바르게 포워드됩니다:
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 --dport 21 -j MARK --set-mark 21
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 --dport 10000:20000 -j MARK --set-mark 21
iptables 명령에서 n.n.n.n을 Piranha Configuration Tool의 VIRTUAL SERVER 하부섹션에서 지정된 FTP 가상 서버에 해당하는 유동 IP로 대체합니다.
주의
3.6. 네트워크 패킷 필터 설정 저장 링크 복사링크가 클립보드에 복사되었습니다!
iptables의 경우 다음과 같은 명령을 사용합니다:
/sbin/service iptables save
/etc/sysconfig/iptables에 설정 사항을 저장하므로 부팅 시 다시 불러올 수 있습니다.
/sbin/service command to start, stop, and check the status (using the status switch) of iptables. The /sbin/service will automatically load the appropriate module for you. For an example of how to use the /sbin/service command, see 2.3절. “Piranha Configuration Tool 서비스 시작 ”.
4장. Piranha Configuration Tool를 사용하여 LVS 라우터 설정 링크 복사링크가 클립보드에 복사되었습니다!
/etc/sysconfig/ha/lvs.cf을 생성하기 위한 구조적 접근 방법을 제공합니다. 다음 부분에서는 Piranha Configuration Tool의 기본적인 실행 방법 및 설정 완료 후 LVS를 활성화하는 방법에 대해 설명합니다.
중요
lvs.cf에서 구문 오류가 발생하지 않게 하는 가장 좋은 방법으로 결국 소프트웨어 장애가 발생하지 않게 됩니다.
4.1. 필요한 소프트웨어 링크 복사링크가 클립보드에 복사되었습니다!
piranha-gui 서비스는 Piranha Configuration Tool를 사용하기 위해 주요 LVS 라우터에서 실행되고 있어야 합니다. LVS를 설정하려면 최소한 links와 같이 텍스트 전용 웹 브라우저가 필요합니다. 다른 컴퓨터에서 LVS 라우터에 액세스하고 있을 경우, root 사용자로 주요 LVS 라우터에 ssh 연결이 되어 있어야 합니다.
ssh 연결을 유지하는 것이 좋습니다. 이는 pulse 및 기타 다른 서비스 재시작, 네트워크 패킷 필터 설정, 문제 해결 도중 /var/log/messages 모니터하는데 안전한 방법을 제공합니다.
4.2. Piranha Configuration Tool로 로그인 링크 복사링크가 클립보드에 복사되었습니다!
piranha-gui service is running and an administrative password has been set, as described in 2.2절. “Piranha Configuration Tool 암호 설정 ”.
http://localhost:3636 in a Web browser to access the Piranha Configuration Tool. Otherwise, type in the hostname or real IP address for the server followed by :3636. Once the browser connects, you will see the screen shown in 그림 4.1. “The Welcome Panel”.
그림 4.1. The Welcome Panel
piranha를 입력하고 Password 란에서 생성한 관리자 암호를 입력합니다.
4.3. CONTROL/MONITORING 링크 복사링크가 클립보드에 복사되었습니다!
pulse 데몬, LVS 라우팅 테이블, LVS 스폰 nanny 프로세스의 상태를 보여줍니다.
참고
그림 4.2. The CONTROL/MONITORING Panel
- Auto update
- 이 페이지에 있는 상태 보기는 사용자 설정 시간 간격으로 자동 업데이트될 수 있습니다. 이 기능을 활성화하려면 Auto update를 클릭하여 Update frequency in seconds (기본값은 10 초임) 텍스트 상자에서 원하는 업데이트 간격을 설정합니다.10초 보다 짧게 자동 업데이트 간격을 설정하는 것은 좋지 않습니다. 이는 페이지가 너무 자주 업데이트되어 Auto update 간격을 재설정하기를 어렵게 만들기 때문입니다. 이러한 문제가 발생했을 경우, 다른 패널을 클릭한 후 CONTROL/MONITORING으로 다시 돌아옵니다.Auto update 업데이트 기능은 Mozilla에서와 같이 모든 브라우저에서 작동하지는 않습니다.
- 이 버튼을 클릭하여 상태 정보를 수동으로 업데이트합니다.
- 이 버튼을 클릭하면 Piranha Configuration Tool의 관리 암호를 변경하는 방법에 관한 내용이 있는 도움말 화면으로 이동합니다.
4.4. GLOBAL SETTINGS 링크 복사링크가 클립보드에 복사되었습니다!
그림 4.3. The GLOBAL SETTINGS Panel
- Primary server public IP
- 주요 LVS 노드에 해당하는 공개적으로 라우터 가능한 실제 IP 주소를 입력합니다.
- Primary server private IP
- Enter the real IP address for an alternative network interface on the primary LVS node. This address is used solely as an alternative heartbeat channel for the backup router and does not have to correlate to the real private IP address assigned in 3.1.1절. “NAT를 사용한 LVS 용 네트워크 인터페이스 설정 ”. You may leave this field blank, but doing so will mean there is no alternate heartbeat channel for the backup LVS router to use and therefore will create a single point of failure.
참고
모든 실제 서버와 LVS Director는 동일한 가상 IP 주소와 IP 라우트 설정을 공유하므로 설정을 위해 개인 IP 주소를 필요로 하지 않습니다.참고
The primary LVS router's private IP can be configured on any interface that accepts TCP/IP, whether it be an Ethernet adapter or a serial port. - Use network type
- 버튼을 클릭하여 NAT 라우팅을 선택합니다.버튼을 클릭하여 직접 라우팅을 선택합니다.
- NAT Router IP
- 개인 유동 IP를 입력합니다. 유동 IP는 실제 서버의 게이트웨이로 사용되어야 합니다.
- NAT Router netmask
- If the NAT router's floating IP needs a particular netmask, select it from drop-down list.
- NAT Router device
eth1:1과 같이 유동 IP 주소에 해당하는 네트워크 인터페이스의 장치 이름을 정의합니다.참고
개인 네트워크에 연결된 이더넷 인터페이스로 NAT 유동 IP 주소를 알리아스합니다. 예를 들어, 개인 네트워크가eth1인터페이스에 있을 경우,eth1:1이 유동 IP 주소가 됩니다.
주의
4.5. REDUNDANCY 링크 복사링크가 클립보드에 복사되었습니다!
참고
그림 4.4. The REDUNDANCY Panel
- Redundant server public IP
- 백업 LVS 라우터 노드용 공개 실제 IP 주소를 입력합니다.
- Redundant server private IP
- Enter the backup node's private real IP address in this text field.Redundant server private IP라는 란이 나타나지 않을 경우, GLOBAL SETTINGS 패널로 돌아가서 Primary server private IP 주소를 입력하고 버튼을 클릭합니다.
- Heartbeat Interval (seconds)
- 하트비트 사이의 초 간격을 설정합니다 — 백업 노드가 주요 LVS 노드의 기능 상태를 점검하는 간격
- Assume dead after (seconds)
- 몇 초가 경과한 후 주요 LVS 노드가 응답하지 않을 경우, 백업 LVS 라우터 노드가 장애 조치를 시작하게 됩니다.
- Heartbeat runs on port
- 하트비트가 주요 LVS 노드와 통신하는 포트를 설정합니다. 빈 칸으로 되어 있을 경우 기본값으로 539를 설정합니다.
주의
4.6. VIRTUAL SERVERS 링크 복사링크가 클립보드에 복사되었습니다!
그림 4.5. The VIRTUAL SERVERS Panel
4.6.1. VIRTUAL SERVER 하부 섹션 링크 복사링크가 클립보드에 복사되었습니다!
그림 4.6. The VIRTUAL SERVERS Subsection
- Name
- 가상 서버를 확인하기 위한 기술적인 이름이어야 합니다. 이는 컴퓨터의 호스트명이 아니므로 기술적이고 식별하기 쉬운 것으로 정해야 합니다. HTTP와 같이 가상 서버로 사용된 프로토콜을 참조할 수 있습니다.
- Application port
- 서비스 어플리케이션이 청취할 포트 번호를 입력합니다. 예에서는 HTTP 서비스에 대해 포트 80이 사용되고 있습니다.
- 드롭 다운 메뉴에서 UDP 또는 TCP를 선택합니다. 일반적으로 웹 서버는 TCP 프로토콜이 사용되므로 위의 예에서는 TCP가 선택되어 있습니다.
- Virtual IP Address
- Enter the virtual server's floating IP address in this text field.
- 드롭 다운 메뉴에 있는 가상 서버의 넷 마스크를 설정합니다.
- Firewall Mark
- 다중 포트 프로토콜을 묶거나 프로토콜과 관련하여 개별적으로 다중 포트 가상 서버를 생성하는 것이 아니라면 이 란에 방화벽 표시 기능 정수값을 입력하지 않습니다. 예에서 가상 서버는 포트 80에서 HTTP로 연결을 묶고 있고 80이라는 방화벽 표시 기능값을 사용하여 포트 443에서 HTTPS로 연결을 묶고 있기 때문에 80이라는 Firewall Mark를 갖습니다. 지속성 기능과 결합하여 사용할 때 이 기능은 사용자가 보안적인 또는 비보안적인 웹 페이지로 액세스하는 사용자가 동일한 실제 서버로 라우트되어 상태를 유지하는 지를 확인합니다.
주의
Entering a firewall mark in this field allows IPVS to recognize that packets bearing this firewall mark are treated the same, but you must perform further configuration outside of the Piranha Configuration Tool to actually assign the firewall marks. See 3.4절. “다중 포트 서비스 및 LVS ” for instructions on creating multi-port services and 3.5절. “FTP 설정 ” for creating a highly available FTP virtual server. - Device
- 바인드할 Virtual IP Address란에 지정된 유동 IP주소에 네트워크 장치 이름을 입력합니다.공개 네트워크에 연결된 이더넷 인터페이스로 공개적 유동 IP 주소를 알리아스합니다. 예를 들어, 공개 네트워크가
eth0인터페이스에 있을 경우,eth0:1이 장치 이름으로 입력됩니다.
- Re-entry Time
- 실제 서버 연결에 실패한 후 활성 LVS 라우터가 풀로 실제 서버를 다시 불러오기 전 까지의 시간 (초 단위)을 정수 값으로 지정하여 입력합니다.
- Service Timeout
- 실제 서버가 풀에서 종료되었거나 삭제되었다고 판단하기 전 까지의 시간 (초 단위)을 정수 값으로 지정하여 입력합니다.
- Quiesce server
- Quiesce server 라디오 버튼이 선택되었을 경우, 아무때나 새로운 실제 서버 노드가 온라인이 될 수 있으며, 최소 연결 테이블은 0으로 재설정되어 활성 LVS 라우터는 모든 실제 서버가 새로 풀에 추가된 것처럼 요청을 보냅니다. 이러한 옵션은 새로운 서버가 풀로 들어오는 최대 연결로 인해 교착 상태에 빠지지 않게 합니다.
- Load monitoring tool
- LVS 라우터는
rup또는ruptime을 사용하여 다양한 실제 서버 상의 로드를 모니터할 수 있습니다. 드롭 다운 메뉴에서rup를 선택했을 경우, 각각의 실제 서버는rstatd서비스를 실행해야만 합니다.ruptime을 선택했을 경우, 각각의 실제 서버는rwhod서비스를 실행해야 합니다.주의
로드 모니터링은 로드 밸런싱과 동일하지 않으며 가중치 기반 스케줄링 알고리즘과 결합하려 할 때 스케줄링 상태를 예상하기 어렵게 할 수 있습니다. 또한 로드 모니터링을 사용할 경우, 실제 서버는 반드시 Linux를 사용하는 컴퓨터여야 합니다. - Scheduling
- Select your preferred scheduling algorithm from the drop-down menu. The default is
Weighted least-connection. For more information on scheduling algorithms, see 1.3.1절. “스케줄링 알고리즘 ”. - Persistence
- 클라이언트 트랜잭션 동안 관리자가 가상 서버에 지속적으로 연결해야 할 경우, 텍스트 란에 있는 연결 제한 시간 전에 경과 시간으로 허용된 비활성화 시간 (초 단위)을 지정합니다.
중요
If you entered a value in the Firewall Mark field above, you should enter a value for persistence as well. Also, be sure that if you use firewall marks and persistence together, that the amount of persistence is the same for each virtual server with the firewall mark. For more on persistence and firewall marks, refer to 1.5절. “지속성 및 방화벽 표시 기능 ”. - 특정 서브넷에 지속성을 제한하기 위해 드롭다운 메뉴에서 적절한 네트워크 마스크를 선택합니다.
참고
방화벽 표시 기능이 생겨나기 전에 서브넷에 의해 제한된 지속성 기능으로 연결을 묶기에는 미숙했었습니다. 현재, 방화벽 표시 기능과 관련하여 동일한 결과를 얻기 위해 지속성 기능을 사용하는 것이 가장 좋습니다.
주의
4.6.2. REAL SERVER 하부 섹션 링크 복사링크가 클립보드에 복사되었습니다!
그림 4.7. The REAL SERVER Subsection
그림 4.8. The REAL SERVER Configuration Panel
- Name
- 실제 서버에 해당하는 기술적인 이름입니다.
참고
이 이름은 컴퓨터의 호스트명이 아니므로 기술적이고 쉽게 식별할 수 있는 것이어야 합니다. - Address
- The real server's IP address. Since the listening port is already specified for the associated virtual server, do not add a port number.
- Weight
- An integer value indicating this host's capacity relative to that of other hosts in the pool. The value can be arbitrary, but treat it as a ratio in relation to other real servers in the pool. For more on server weight, see 1.3.2절. “서버 가중치 및 스케줄링 ”.
주의
4.6.3. EDIT MONITORING SCRIPTS Subsection 링크 복사링크가 클립보드에 복사되었습니다!
그림 4.9. The EDIT MONITORING SCRIPTS Subsection
- Sending Program
- 보다 고급 서비스 인증을 위해 이 란에 서비스 확인 스크립트로의 경로를 지정할 수 있습니다. 특히 이러한 기능은 HTTPS 또는 SSL과 같이 역동적 데이터 변경을 필요로 하는 서비스에 유용합니다.이 기능을 사용하려면 스크립트를 작성해야 합니다. 스크립트는 텍스트 응답 방식으로 리턴하여 실행 가능하도록 설정되어야 하며 Sending Program 란에 경로를 입력해야 합니다.
참고
To ensure that each server in the real server pool is checked, use the special token%hafter the path to the script in the Sending Program field. This token is replaced with each real server's IP address as the script is called by thenannydaemon.다음은 외부 서비스 확인 스크립트 작성 시 가이드로 사용할 수 있는 예시 스크립트입니다:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고
외부 프로그램이 Sending Program 란에 입력되어 있을 경우 Send 란을 무시합니다. - Send
- 이 란에 각각의 실제 서버로 보내기 위해
nanny데몬에 필요한 문자열을 입력합니다. 기본값으로 이 란은 HTTP로 되어 있습니다. 필요에 따라 이를 변경할 수 있습니다. 이 란을 빈 칸으로 비워두었을 경우,nanny데몬은 포트를 열어 두어 서비스가 실행 되고 있다고 여깁니다.이 란에는 하나의 전송 순서만이 허용되며 인쇄할 수 있는 ASCII 문자와 다음과 같은 이스케이프 문자이어야만 합니다:- 새 줄 표시 경우 \n
- 캐리지 리턴 경우 \r
- 탭 경우 \t
- 그 다음으로 오는 문자를 생략할 경우 \
- Expect
- 서버가 올바르게 작동할 경우 서버가 리턴해야 할 텍스트 응답 방식을 입력합니다. 독자적인 전송 프로그램을 사용할 경우, 전송 명령이 성공적으로 실행되었을 경우 이에 대한 응답을 입력합니다.
참고
서비스를 부르기 위해 무엇을 사용할 지를 결정하기 위해, 실제 서버에서 포트로telnet연결을 오픈한 후 리턴값을 확인합니다. 예를 들어, FTP가 220에 연결되어 있다고 보고하면 Send란에quit를 입력하고 Expect 란에220을 입력합니다.
주의
4.7. 설정 파일 동기화 링크 복사링크가 클립보드에 복사되었습니다!
/etc/sysconfig/ha/lvs.cf— LVS 라우터 용 설정 파일/etc/sysctl— 커널에서 패킷 포워딩을 활성화시키는 설정 파일/etc/sysconfig/iptables— 방화벽 표시 기능을 사용할 경우, 사용 중인 네트워크 패킷 필터에 기반한 파일 중 하나를 동기화시켜야 합니다.
중요
/etc/sysctl.conf 및 /etc/sysconfig/iptables 파일은 변경하지 않습니다.
4.7.1. lvs.cf 동기화 링크 복사링크가 클립보드에 복사되었습니다!
/etc/sysconfig/ha/lvs.cf을 생성하거나 업데이트할 때 마다 백업 LVS 라우터 노드에 이 파일을 복사해 두어야 합니다.
주의
lvs.cf 파일이 있습니다. LVS 라우터 노드에서 LVS 설정 파일이 일치하지 않을 경우 장애조치가 실행되지 않을 수 있습니다.
scp 명령을 사용하는 것입니다.
중요
scp the sshd must be running on the backup router, see 2.1절. “LVS 라우터 상의 설정 서비스 ” for details on how to properly configure the necessary services on the LVS routers.
lvs.cf 파일을 동기화하기 위해 주요 LVS 라우터에서 root 사용자로 다음과 같은 명령을 실행합니다:
scp /etc/sysconfig/ha/lvs.cf n.n.n.n:/etc/sysconfig/ha/lvs.cf
4.7.2. sysctl 동기화 링크 복사링크가 클립보드에 복사되었습니다!
sysctl 파일은 한 번만 수정됩니다. 부팅 시 파일을 읽어 패킷 포워딩을 활성화할 커널을 알려줍니다.
중요
4.7.3. 네트워크 패킷 필터링 규칙 동기화 링크 복사링크가 클립보드에 복사되었습니다!
iptables을 사용하고 있을 경우, 백업 LVS 라우터에서 올바를 설정 파일을 동기화해야 합니다.
scp /etc/sysconfig/iptables n.n.n.n:/etc/sysconfig/
ssh 세션을 열거나 또는 root로 컴퓨터에 로그인한 후 다음과 같은 명령을 입력합니다:
/sbin/service iptables restart
4.8. LVS 시작하기 링크 복사링크가 클립보드에 복사되었습니다!
ssh 세션을 열게 하는 것이 좋습니다.
tail -f /var/log/messages
/sbin/service pulse start
pulse service's startup in the terminal with the kernel log messages. When you see the following output, the pulse daemon has started properly:
gratuitous lvs arps finished
/var/log/messages 파일 보기를 정지하려면, Ctrl+c 키를 사용합니다.
부록 A. Red Hat Cluster로 LVS 사용 링크 복사링크가 클립보드에 복사되었습니다!
그림 A.1. LVS with a Red Hat Cluster
- 첫번째 tier — 웹 요청을 배분하기 위해 로드 밸런싱을 실행하는 LVS 라우터
- 두번째 tier — 요청을 실행하는 웹 서버 모음
- 세번째 tier — 웹 서버로 데이터를 보내는 Red Hat Cluster
부록 B. Revision History 링크 복사링크가 클립보드에 복사되었습니다!
| 고친 과정 | ||||
|---|---|---|---|---|
| 고침 5-8.400 | 2013-10-31 | |||
| ||||
| 고침 5-8 | 2012-07-18 | |||
| ||||
| 고침 2.0-0 | Mon Feb 08 2010 | |||
| ||||
| 고침 1.0-0 | Tue Jan 20 2009 | |||
| ||||
색인
Symbols
- /etc/sysconfig/ha/lvs.cf file, /etc/sysconfig/ha/lvs.cf
A
- arptables_jf, 직접 라우팅 및 arptables_jf
C
- chkconfig, LVS 라우터 상의 설정 서비스
- cluster
- using LVS with Red Hat Cluster, Red Hat Cluster로 LVS 사용
- components
- of LVS, LVS Components
D
- direct routing
- and arptables_jf, 직접 라우팅 및 arptables_jf
I
- introduction, Introduction
- other Red Hat Enterprise Linux documents, Introduction
- iptables , LVS 라우터 상의 설정 서비스
- ipvsadm program, ipvsadm
J
- job scheduling, LVS, LVS 스케줄링 개요
L
- least connections (살펴볼 내용 job scheduling, LVS)
- LVS
- /etc/sysconfig/ha/lvs.cf file, /etc/sysconfig/ha/lvs.cf
- components of, LVS Components
- daemon, lvs
- date replication, real servers, 실제 서버에서 데이터 복사 및 데이터 공유
- direct routing
- and arptables_jf, 직접 라우팅 및 arptables_jf
- requirements, hardware, 직접 라우팅 , 직접 라우팅을 통한 LVS
- requirements, network, 직접 라우팅 , 직접 라우팅을 통한 LVS
- requirements, software, 직접 라우팅 , 직접 라우팅을 통한 LVS
- initial configuration, LVS 초기 설정
- ipvsadm program, ipvsadm
- job scheduling, LVS 스케줄링 개요
- lvs daemon, lvs
- LVS routers
- configuring services, LVS 초기 설정
- necessary services, LVS 라우터 상의 설정 서비스
- primary node, LVS 초기 설정
- multi-port services, 다중 포트 서비스 및 LVS
- FTP, FTP 설정
- nanny daemon, nanny
- NAT routing
- enabling, LVS 라우터에서 NAT 라우팅 활성화
- requirements, hardware, NAT LVS 네트워크
- requirements, network, NAT LVS 네트워크
- requirements, software, NAT LVS 네트워크
- overview of, LVS (Linux Virtual Server) 개요
- packet forwarding, 패킷 포워딩 활성화
- Piranha Configuration Tool , Piranha Configuration Tool
- pulse daemon, pulse
- real servers, LVS (Linux Virtual Server) 개요
- routing methods
- NAT, 라우팅 방식
- routing prerequisites, NAT를 사용한 LVS 용 네트워크 인터페이스 설정
- scheduling, job, LVS 스케줄링 개요
- send_arp program, send_arp
- shared data, 실제 서버에서 데이터 복사 및 데이터 공유
- starting LVS, LVS 시작하기
- synchronizing configuration files, 설정 파일 동기화
- three-tier
- Red Hat Cluster Manager, A Three-Tier LVS Configuration
- using LVS with Red Hat Cluster, Red Hat Cluster로 LVS 사용
- lvs daemon, lvs
M
- multi-port services, 다중 포트 서비스 및 LVS
- ([살펴볼 다른 내용] LVS)
N
- nanny daemon, nanny
- NAT
- enabling, LVS 라우터에서 NAT 라우팅 활성화
- routing methods, LVS, 라우팅 방식
- network address translation (살펴볼 내용 NAT)
P
- packet forwarding, 패킷 포워딩 활성화
- ([살펴볼 다른 내용] LVS)
- Piranha Configuration Tool , Piranha Configuration Tool
- CONTROL/MONITORING , CONTROL/MONITORING
- EDIT MONITORING SCRIPTS Subsection, EDIT MONITORING SCRIPTS Subsection
- GLOBAL SETTINGS , GLOBAL SETTINGS
- limiting access to, Piranha Configuration Tool로의 액세스 제한
- login panel, Piranha Configuration Tool로 로그인
- necessary software, 필요한 소프트웨어
- overview of, Piranha Configuration Tool를 사용하여 LVS 라우터 설정
- REAL SERVER subsection, REAL SERVER 하부 섹션
- REDUNDANCY , REDUNDANCY
- setting a password, Piranha Configuration Tool 암호 설정
- VIRTUAL SERVER subsection, VIRTUAL SERVER 하부 섹션
- Firewall Mark , VIRTUAL SERVER 하부 섹션
- Persistence , VIRTUAL SERVER 하부 섹션
- Scheduling , VIRTUAL SERVER 하부 섹션
- Virtual IP Address , VIRTUAL SERVER 하부 섹션
- VIRTUAL SERVERS , VIRTUAL SERVERS
- piranha-gui service, LVS 라우터 상의 설정 서비스
- piranha-passwd , Piranha Configuration Tool 암호 설정
- pulse daemon, pulse
- pulse service, LVS 라우터 상의 설정 서비스
R
- real servers
- configuring services, 실제 서버에서 서비스 설정
- Red Hat Cluster
- and LVS, Red Hat Cluster로 LVS 사용
- using LVS with, Red Hat Cluster로 LVS 사용
- round robin (살펴볼 내용 job scheduling, LVS)
- routing
- prerequisites for LVS, NAT를 사용한 LVS 용 네트워크 인터페이스 설정
S
- scheduling, job (LVS), LVS 스케줄링 개요
- security
- Piranha Configuration Tool , Piranha Configuration Tool로의 액세스 제한
- send_arp program, send_arp
- sshd service, LVS 라우터 상의 설정 서비스
- synchronizing configuration files, 설정 파일 동기화
W
- weighted least connections (살펴볼 내용 job scheduling, LVS)
- weighted round robin (살펴볼 내용 job scheduling, LVS)