Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Virtual Server Administration

Red Hat Enterprise Linux 5

Linux Virtual Server (LVS) for Red Hat Enterprise Linux

엮음 5

Logo

초록

Building a Linux Virtual Server (LVS) system offers highly-available and scalable solution for production services using specialized routing and load-balancing techniques configured through the PIRANHA. This book discusses the configuration of high-performance systems and services with Red Hat Enterprise Linux and LVS for Red Hat Enterprise Linux 5.

Introduction

This document provides information about installing, configuring, and managing Red Hat Virtual Linux Server (LVS) components. LVS provides load balancing through specialized routing techniques that dispatch traffic to a pool of servers. This document does not include information about installing, configuring, and managing Red Hat Cluster software. Information about that is in a separate document.
The audience of this document should have advanced working knowledge of Red Hat Enterprise Linux and understand the concepts of clusters, storage, and server computing.
This document is organized as follows:
For more information about Red Hat Enterprise Linux 5, refer to the following resources:
  • 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.
For more information about Red Hat Cluster Suite for Red Hat Enterprise Linux 5, refer to the following resources:
  • 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.
Red Hat Cluster Suite documentation and other Red Hat documents are available in HTML, PDF, and RPM versions on the Red Hat Enterprise Linux Documentation CD and online at http://www.redhat.com/docs/.

1. Feedback

If you spot a typo, or if you have thought of a way to make this manual better, we would love to hear from you. Please submit a report in Bugzilla (http://bugzilla.redhat.com/bugzilla/) against the component Documentation-cluster.
Be sure to mention the manual's identifier:
Virtual_Server_Administration(EN)-5 (2010-02-08T16:55)
By mentioning this manual's identifier, we know exactly which version of the guide you have.
If you have a suggestion for improving the documentation, try to be as specific as possible. If you have found an error, please include the section number and some of the surrounding text so we can find it easily.

1장. LVS (Linux Virtual Server) 개요

LVS (Linux Virtual Server)는 실제 서버를 통해 IP 로드 밸런스를 맞추기 위한 통합된 소프트웨어 구성 요소 모음입니다. LVS는 동일하게 설정된 한 쌍의 컴퓨터 상에서 실행됩니다: 즉 하나는 활성 LVS 라우터이고 다른 하나는 백업 LVS 라우터이어야 합니다. 활성 LVS 라우터는 두 가지 역할을 수행합니다:
  • 실제 서버 전역에 걸쳐 로드 밸런스 유지
  • 각각의 실제 서버에서 서비스 무결성 확인
백업 LVS 라우터는 활성 LVS 라우터를 모니터하고 활성 LVS 라우터에 장애가 발생할 경우 이를 백업합니다.
다음 부분에서는 LVS 구성요소 및 기능에 대한 개요를 다루고 있으며 이는 다음과 같은 섹션으로 구성되어 있습니다:

1.1. A Basic LVS Configuration

그림 1.1. “A Basic LVS Configuration” shows a simple LVS configuration consisting of two layers. On the first layer are two LVS routers — one active and one backup. Each of the LVS routers has two network interfaces, one interface on the Internet and one on the private network, enabling them to regulate traffic between the two networks. For this example the active router is using Network Address Translation or NAT to direct traffic from the Internet to a variable number of real servers on the second layer, which in turn provide the necessary services. Therefore, the real servers in this example are connected to a dedicated private network segment and pass all public traffic back and forth through the active LVS router. To the outside world, the servers appears as one entity.
A Basic LVS Configuration

그림 1.1. A Basic LVS Configuration

Service requests arriving at the LVS routers are addressed to a virtual IP address, or VIP. This is a publicly-routable address the administrator of the site associates with a fully-qualified domain name, such as www.example.com, and is assigned to one or more virtual servers. A virtual server is a service configured to listen on a specific virtual IP. Refer to 4.6절. “VIRTUAL SERVERS for more information on configuring a virtual server using the Piranha Configuration Tool. A VIP address migrates from one LVS router to the other during a failover, thus maintaining a presence at that IP address (also known as floating IP addresses).
VIP 주소는 LVS 라우터를 인터넷으로 연결시키는 장치와 같은 것으로 알리아스될 수 있습니다. 예를 들어, eth0가 인터넷에 연결되어 있을 경우, 다중 가상 서버는 eth0:1로 알리아스될 수 있습니다. 다른 방법으로 각각의 가상 서버를 서비스마다 분리된 장치와 연관시킬 수 있습니다. 예를 들어, HTTP 소통량은 eth0:1에서 처리될 수 있으며, FTP 소통량은 eth0:2에서 처리될 수 있습니다.
Only one LVS router is active at a time. The role of the active router is to redirect service requests from virtual IP addresses to the real servers. The redirection is based on one of eight supported load-balancing algorithms described further in 1.3절. “LVS 스케줄링 개요 ”.
또한, 활성 라우터는 send/expect 스크립트를 통해 실제 서버에 있는 특정 서비스의 전반적인 상태를 정적으로 모니터합니다. HTTPS나 SSL과 같은 정적인 데이터에 필요한 서비스의 상태를 점검하기 위해 관리자는 외부에서 실행 가능하게 할 수 있습니다. 실제 서버에서의 서비스가 잘 작동하지 않을 경우, 활성 라우터는 서버가 정상적인 작동 상태로 돌아올 때 까지 실제 서버로의 작업 전송을 중단합니다.
백업 LVS 라우터는 대기 시스템의 역할을 실행합니다. 주기적으로 LVS 라우터는 주요 외부 공개 인터페이스, 장애 조치 상태, 개인 인터페이스를 통해 하트비트 메시지 (heartbeat message)를 교환합니다. 백업 LVS 라우터는 정해진 간격 내로 하트비트 메시지를 받지 못하면, 장애 조치를 시작하고 활성 LVS 라우터의 역할을 실행하려 합니다. 장애 조치 작업이 진행되는 동안 백업 LVS 라우터는 ARP spoofing이라는 기술을 사용하여 장애가 발생한 라우터에 의해 VIP 주소를 전달 받게 됩니다. — 여기서 백업 LVS 라우터는 IP 패킷의 목적지를 장애가 발생한 노드로 지정했음을 알립니다. 장애가 발생한 노드가 정상으로 돌아오면, 백업 LVS 라우터는 다시 백업 역할을 실행하게 됩니다.
The simple, two-layered configuration used in 그림 1.1. “A Basic LVS Configuration” is best for serving data which does not change very frequently — such as static webpages — because the individual real servers do not automatically sync data between each node.

1.1.1. 실제 서버에서 데이터 복사 및 데이터 공유

실제 서버에 있는 데이터를 공유하기 위해 LVS에 내장된 요소가 없기 때문에 관리자에게 다음과 같은 두 가지 옵션이 필요합니다:
  • 실제 서버 풀을 통한 데이터 동기화
  • 데이터 공유 액세스에 필요한 토폴로지에 세번째 레이어 추가
첫 번째 옵션은 다수의 사용자가 실제 서버에서 업로드하거나 데이터를 변경하는 것을 허용하지 않는 서버에 적합합니다. 실제 서버에서 다수의 사용자가 데이터를 수정할 수 있게 할 경우 (예: 전자 상거래 웹사이트) 세번째 레이어를 추가하는 것이 좋습니다.

1.1.1.1. 데이터 동기화를 위한 실제 서버 설정

관리자가 실제 서버 풀에서 데이터를 동기화하는 방법에는 여러 가지가 있습니다. 예를 들어, 쉘 스크립트를 사용하여 동시에 실제 서버에 업데이트된 웹 페이지를 게시할 수 있습니다. 또한, 시스템 관리자는 rsync와 같은 프로그램을 사용하여 일정 간격으로 모든 노드에 걸쳐 변경된 데이터를 복사할 수 있습니다.
하지만, 사용자가 수시로 파일을 업로드하거나 데이터베이스를 처리해야 하는 설정 과부하 상태에서 이와 같은 데이터 동기화 유형을 사용하는 것은 기능을 최적화하지 못합니다. 따라서, 과도한 작업량이 있는 설정에서는 3-tier 토폴로지를 사용하는 것이 좋습니다.

1.2. A Three-Tier LVS Configuration

그림 1.2. “A Three-Tier LVS Configuration” shows a typical three-tier LVS topology. In this example, the active LVS router routes the requests from the Internet to the pool of real servers. Each of the real servers then accesses a shared data source over the network.
A Three-Tier LVS Configuration

그림 1.2. A Three-Tier LVS Configuration

이는 소통량이 많은 FTP 서버에 아주 적합합니다, 여기서 액세스할 수 있는 데이터는 중앙 고가용성 서버에 저장되어 있으며 내보내어진 NFS 디렉토리나 Samba 공유 디렉토리를 통해 각각의 실제 서버에 의해 액세스됩니다. 이러한 토폴로지는 트랜잭션을 위한 중앙 고가용성 데이터베이스를 액세스하는 웹사이트에 사용할 것을 권장합니다. 또한, Red Hat Cluster Manager를 사용한 active-active 설정으로, 관리자는 하나의 고가용성 클러스터를 설정하여 동시에 두 가지 역할을 실행하게 할 수 있습니다.
예에서 세 번째 레이어에서는 Red Hat Cluster Manager를 사용할 필요가 없지만 고가용성 솔루션 사용에 문제가 발생하여 SPOF (single point of failure)를 초래할 수 있습니다.

1.3. LVS 스케줄링 개요

LVS 사용 장점 중 하나는 실제 서버 풀에서 유연성있게 IP 수준 로드 밸런싱을 실행할 수 있다는 것입니다. 즉, LVS 설정 시 관리자가 스케줄링 알고리즘을 유연성있게 선택할 수 있습니다. 클라이언트와 계층 DNS 시스템의 캐쉬 특성 때문에 부하가 불균등하게 분산되는 라운드 로빈 (Round-Robin) DNS와 같이 LVS 로드 밸런싱은 비교적 유연하지 못한 방식 보다 우수합니다. 또한 네트워크 패킷 수준에서의 로드 밸런싱은 컴퓨터 오버헤드를 최소화하고 확장성을 최대화하기 때문에 LVS 라우터에 의해 사용되는 저수준 (low-level) 필터링 기술이 어플리케이션 수준 요청 포워딩보다 이점을 갖습니다.
Using scheduling, the active router can take into account the real servers' activity and, optionally, an administrator-assigned weight factor when routing service requests. Using assigned weights gives arbitrary priorities to individual machines. Using this form of scheduling, it is possible to create a group of real servers using a variety of hardware and software combinations and the active router can evenly load each real server.
LVS 스케줄링 메카니즘은 IP 가상 서버 또는 IPVS 모듈이라는 커널 패치에 의해 제공됩니다. 이러한 모듈은 단일 IP 주소에 있는 다중 서버와 잘 작동하게 고안된 레이어 4 (L4) 전송 레이어 스위칭을 활성화합니다.
실제 서버로 패킷을 효과적으로 추적하고 라우트하기 위해 IPVS는 커널에 IPVS 테이블을 만듭니다. 이러한 테이블은 가상 서버에서의 요청을 되돌리고 풀에 있는 실제 서버에서 복귀하기 위해 활성 LVS 라우터에 의해 사용됩니다. IPVS 테이블은 ipvsadm — 사용 가능성에 따라 클러스터 멤버를 추가 또는 삭제 유틸리티에 의해 지속적으로 업데이트됩니다.

1.3.1. 스케줄링 알고리즘

The structure that the IPVS table takes depends on the scheduling algorithm that the administrator chooses for any given virtual server. To allow for maximum flexibility in the types of services you can cluster and how these services are scheduled, Red Hat Enterprise Linux provides the following scheduling algorithms listed below. For instructions on how to assign scheduling algorithms refer to 4.6.1절. “VIRTUAL SERVER 하부 섹션”.
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. 서버 가중치 및 스케줄링

LVS 관리자는 실제 서버 풀에 있는 각각의 노드에 가중치를 부여할 수 있습니다. 이러한 가중치는 정수 값으로 모든 가중치 관련 스케줄링 알고리즘 (예: 가중치 기반 최소 접속)에 영향을 미치며 LVS 라우터가 다른 처리 용량이 있는 하드웨어를 보다 균등하게 로드합니다.
가중치는 서로에 관해 비율로 동작합니다. 예를 들어, 하나의 실제 서버가 가중치 1로 되어 있고 다른 서버가 가중치 5로 되어 있을 경우, 가중치 1로 된 서버가 1번 연결될 때 마다 가중치 5로 되어 있는 서버는 5번 연결됩니다. 실제 서버 가중치에 해당하는 기본 값은 1입니다.
실제 서버 풀에 있는 다양한 하드웨어 설정 사항에 가중치를 추가하는 것이 보다 효과적으로 클러스터의 로드 밸런스를 유지할 수 있을 지라도 실제 서버가 실제 서버 풀에 소개될 때와 가중치 기반 최소 접속을 사용하여 가상 서버가 스케줄링될 때 일시적 부하 불균등 상태가 될 수 있습니다. 예를 들어, 실제 서버 풀에 세 개의 서버가 있다고 가정합시다. 서버 A와 B는 가중치 1이 부여되어 있고 세번째 서버 C는 가중치 2가 부여되어 있습니다. 어떤 이유로 서버 C가 다운되었을 경우 서버 A와 B는 균등하게 부하량을 배분하게 됩니다. 하지만, 서버 C가 온라인으로 돌아오면 LVS 라우터는 이 서버에 0 연결이 있다고 보고 서버 A 및 B와 동등한 수준이 될 때 까지 서버를 모든 들어오는 요청으로 채웁니다.
이러한 현상이 일어나지 않게 하기 위해, 관라자는 가상 서버를 Quiesce 서버로 만들 수 있습니다 — 새로운 실제 서버 노드가 온라인 상태로 될 때 마다 최소 접속 테이블이 0으로 재설정되어 LVS 라우터는 모든 실제 서버가 클러스터에 새로 추가된 것처럼 요청을 라우트합니다.

1.4. 라우팅 방식

Red Hat Enterprise Linux는 LVS 용 NAT (Network Address Translation) 또는 NAT 라우팅을 사용하여 관리자로 하여금 하드웨어를 사용하여 기존 네트워크로 LVS를 통합할 때 유연성을 제공합니다.

1.4.1. NAT 라우팅

그림 1.3. “LVS Implemented with NAT Routing”, illustrates LVS utilizing NAT routing to move requests between the Internet and a private network.
LVS Implemented with NAT Routing

그림 1.3. LVS Implemented with NAT Routing

예에서 활성화된 LVS 라우터에는 두개의 NIC가 있습니다. 인터넷용 NIC는 eth0에 실제 IP 주소가 있고 알리아스된 eth0:1에는 유동 IP 주소가 있습니다. 개인 네트워크 인터페이스 용 NIC에는 eth1에 실제 IP 주소가 있고 알리아스된 eth1:1에는 유동 IP 주소가 있습니다. 장애 조치 시, 인터넷에 대한 가상 인터페이스와 가상 인터페이스에 대한 개인 네트워크는 동시에 백업 LVS 라우터에 의해 백업됩니다. 개인 네트워크에 있는 모든 실제 서버는 NAT 라우터에 대해 활성화된 LVS 라우터와 통신하기 위한 기본값 라우터로 유동 IP 주소를 사용하므로 인터넷에서의 요청에 응답하는 기능에 문제를 일으키지 않습니다.
In this example, the LVS router's public LVS floating IP address and private NAT floating IP address are aliased to two physical NICs. While it is possible to associate each floating IP address to its own physical device on the LVS router nodes, having more than two NICs is not a requirement.
이러한 토플로지를 사용하여 활성 LVS 라우터는 요청을 받아 적절한 서버로 보냅니다. 그 뒤 실제 서버는 요청을 처리하고 LVS 라우터로 패킷을 되돌려 보냅니다. LVS 라우터는 네트워크 주소 트랜잭션을 사용하여 패킷에 있는 실제 서버의 주소를 LVS 라우터 공개 VIP 주소로 교체합니다. 실제 서버의 실질적인 IP 주소가 요청 중인 클라이언트에게 보이지 않게 되므로 이러한 절차를 IP 마스커레이딩이라고 부릅니다.
NAT 라우팅을 사용하면 다양한 운영 체제가 실행되고 있는 아무 컴퓨터나 실제 서버가 될 수 있습니다. NAT 라우팅의 주요 취약점은 들어오고 나가는 모든 요청을 처리해야 하기 때문에 LVS 라우터의 대량의 분배 작업에서 병목 현상이 일어날 수 있다는 점입니다.

1.4.2. 직접 라우팅

직접 라우팅을 사용하는 LVS 설정은 다른 LVS 네트워킹 토폴로지와 비교하여 성능이 향상되었습니다. 직접 라우팅으로 실제 서버는 LVS 라우터를 통해 외부로 나가는 패킷을 전달하지 않고 요청 중인 사용자에게 직접 패킷을 처리하고 보냅니다. 직접 라우팅은 LVS 라우터의 작업을 들어오는 패킷이 처리하게 하여 네트워크 성능 문제 발생을 감소시켰습니다.
LVS Implemented with Direct Routing

그림 1.4. LVS Implemented with Direct Routing

전형적인 직접 라우팅 LVS 설정에서, LVS 라우터는 가상 IP (VIP)를 통해 들어오는 서버 요청을 받고 스케줄링 알고리즘을 사용하여 실제 서버에 요청을 보냅니다. 각각의 실제 서버는 요청을 처리하고 LVS 라우터를 바이패싱하여 클라이언트에게 직접 응답합니다. LVS 라우터에 추가된 처리량 없이 실제 서버에서 클라이언트로 나가는 패킷을 보내기위해 실제 서버에서 확장성을 감안한 직접 라우팅이 추가될 수 있어 과중한 네트워크 로드에서 병목 현상이 나타날 수 있습니다.

1.4.2.1. 직접 라우팅 및 ARP 한계

LVS에서 직접 라우팅을 사용하는데 있어서 여러 장점이 있는 반면 제한점도 있습니다. 직접 라우팅응 통한 LVS 사용에서 가장 일반적으로 발생하는 문제는 ARP (Address Resolution Protocol)와의 문제입니다.
In typical situations, a client on the Internet sends a request to an IP address. Network routers typically send requests to their destination by relating IP addresses to a machine's MAC address with ARP. ARP requests are broadcast to all connected machines on a network, and the machine with the correct IP/MAC address combination receives the packet. The IP/MAC associations are stored in an ARP cache, which is cleared periodically (usually every 15 minutes) and refilled with IP/MAC associations.
직접 라우팅 LVS 설정에 있는 ARP 요청에서의 문제는 IP 주소로의 클라이언트 요청이 처리될 요청에 대한 MAC 주소와 관련되어 있어야 하며, LVS 라우터의 가상 IP 주소도 MAC 주소와 관련되어 있어야 한다는 점입니다. 하지만, LVS 라우터와 실제 서버의 VIP가 같을 경우, ARP 요청은 VIP와 관련되어 있는 모든 컴퓨터로 브로드캐스트됩니다. 이는 VIP가 실제 서버 중 하나에 관련되어 직접적으로 요청을 처리하는 것, LVS 라우터를 바이패싱하여 LVS 설정 목적을 의미없게 하는 것과 같이 여러가지 문제를 발생시킬 수 있습니다.
이러한 문제를 해결하기 위해 들어오는 요청은 항상 실제 서버가 아닌 LVS 라우터로 보내야 합니다. 이러한 작업은 다음과 같은 이유로 arptables_jf 또는 arptables 패킷 필터링 도구를 사용하여 실행합니다:
  • arptables_jf는 ARP가 VIP를 실제 서버와 관련짓지 않게 합니다.
  • iptables 방식은 첫번째의 실제 서버에 있는 VIP 설정을 하지 않음으로 ARP 문제를 전적으로 회피합니다.
For more information on using arptables or iptables in a direct routing LVS environment, refer to 3.2.1절. “직접 라우팅 및 arptables_jf or 3.2.2절. “직접 라우팅 및 iptables.

1.5. 지속성 및 방화벽 표시 기능

특정한 경우에는 LVS 로드 밸런스 알고리즘이 가장 적합한 서버에 요청을 보내는것 보다 동일한 실제 서버에 반복적으로 다시 연결하는 것이 클라이언트에게 더 좋을 수 있습니다. 예를 들어, 여러 화면의 웹 형식, 쿠키, SSL, FTP 연결일 경우에 그러합니다. 이러한 경우, 작업을 유지하기 위해 트랜잭션이 같은 서버에 의해 처리되지 않는 한 클라이언트가 제대로 작업할 수 없게 됩니다. LVS는 지속성 (persistence)방화벽 표시 기능 (firewall marks)이라는 두 가지 다른 종류의 기능을 사용하여 이를 처리합니다.

1.5.1. 지속성

지속성이 활성화되면 이는 타이머와 같은 기능을 수행합니다. 클라이언트가 서비스에 연결할 경우, LVS는 특정 기간에 대한 마지막 연결을 기억하게 됩니다. 같은 클라이언트 IP가 특정 기간 내에 다시 연결될 경우 이전에 연결했던 것과 같은 서버로 전달됩니다. — 로드 밸런스 메카니즘 바이패싱. 시간 창 외부에서 연결할 경우 스케줄링 규칙에 따라 처리됩니다.
지속성 기능은 어떤 주소가 더 높은 수준의 지속성을 갖게 할 지를 제어하기 위한 도구로서 관리자가 클라이언트 IP 주소 테스트를 위한 서브넷 마스크를 지정하게 하여 서브넷에 그룹으로 연결합니다.
목적지가 다른 포트에 대한 그룹 연결은 FTP와 같이 하나 이상의 포트를 사용하여 통신하는 프로토콜의 경우 중요한 사항이 될 수 있습니다. 하지만, 목적지가 다른 포트로 되어있는 그룹 연결 문제를 처리하는데 지속성 기능이 가장 효과적인 방법은 아닙니다. 이러한 경우, 방화벽 표시 기능 (firewall marks)을 사용하는 것이 가장 좋습니다.

1.5.2. 방화벽 표시 기능

방화벽 표시 기능은 연관된 프로토콜의 프로토콜이나 그룹에 사용되는 가장 쉽고 효과적인 그룹 포트 방법입니다. 예를 들어, LVS가 전자 상거래 사이트를 실행하도록 되어 있을 경우, 방화벽 표시 기능은 포트 80에서의 HTTP 연결과 포트 443에서의 HTTPS 연결을 일괄적으로 묶어 처리하는데 사용될 수 있습니다. 각각의 프로토콜에 대해 가상 서버에 동일한 방화벽 표시 기능을 지정하면 포트가 연결된 후 LVS 라우터가 동일한 실제 서버에 모든 요청을 보내기 때문에 트랜잭션에 대한 상태 정보를 보호할 수 있습니다.
이와 같은 효과적이고 사용 간편함 때문에 LVS 관리자는 그룹 연결을 할 때 마다 지속성 기능보다 방화벽 표시 기능을 사용해야 합니다. 하지만, 클라이언트가 일정 기간 동안 동일한 가상 서버로 다시 연결하게 하기 위해 가상 서버에 방화벽 기능과 함께 지속성 기능을 추가시킬 수 있습니다.

1.6. LVS — 블록 다이어그램

LVS routers use a collection of programs to monitor cluster members and cluster services. 그림 1.5. “LVS Components” illustrates how these various programs on both the active and backup LVS routers work together to manage the cluster.
LVS Components

그림 1.5. LVS Components

pulse 데몬은 활성 및 비활성 LVS 라우터에서 실행됩니다. 백업 라우터에서 pulse는 활성 라우터의 공개 인터페이스로 heartbeat를 보내어 활성 LVS 라우터가 올바르게 작동하는 지를 확인합니다. 활성 라우터에서 pulselvs 데몬을 시작하고 백업 LVS 라우터에서의 하트비트 (heartbeat) 쿼리에 응답합니다.
일단 lvs 데몬이 시작되면 이는 ipvsadm 유틸리티를 호출하여 커널에 있는 IPVS (IP Virtual Server) 라우팅 테이블을 설정 및 관리하고 각각의 실제 서버에 있는 설정된 가상 서버에 필요한 nanny 프로세스를 시작합니다. 각각의 nanny 프로세스는 하나의 실제 서버에서 설정된 서비스의 상태를 확인하고 실제 서버에 있는 서비스가 잘 작동하지 않을 경우 lvs 데몬에 보고합니다. 작동 불량 사항이 발견되면, lvs 데몬은 ipvsadm에 지시하여 IPVS 라우팅 테이블에서 실제 서버를 삭제합니다.
백업 LVS 라우터가 활성 LVS 라우터에서 응답을 받지 못하면, 모든 가상 IP 주소를 백업 LVS 라우터의 NIC 하드웨어 주소 (MAC 주소)로 다시 지정하기 위해 send_arp를 호출하여 장애조치를 시작하고, 활성 LVS 라우터에 있는 lvs 데몬을 종료하기 위해 공개 및 개인 네트워크 인터페이스를 통해 활성 LVS 라우터에 명령을 보낸 후, 설정된 가상 서버의 요청을 수락하기 위해 백업 LVS 라우터에 있는 lvs 데몬을 시작합니다.

1.6.1. LVS Components

1.6.1.1절. “pulse shows a detailed list of each software component in an LVS router.

1.6.1.1. pulse

This is the controlling process which starts all other daemons related to LVS routers. At boot time, the daemon is started by the /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가 실제 서버가 다운되었다고 보고하면 lvsipvsadm 유틸리티를 지시하여 IPVS 라우팅 테이블에서 실제 서버를 삭제합니다.

1.6.1.3. ipvsadm

이 서비스로 커널에서 IPVS 라우팅 테이블을 업데이트합니다. lvs 데몬은 IPVS 라운팅 테이블에 있는 항목을 추가, 변경, 삭제하기 위해 ipvsadm 명령을 호출하여 LVS를 설정 및 관리합니다.

1.6.1.4. nanny

nanny 모니터링 데몬은 활성 LVS 라우트에서 실행됩니다. 이 데몬을 통해, 활성화된 라우터는 실제 서버 상태를 확인하며, 옵션으로 작업량을 모니터합니다. 분리된 프로세스는 실제 서버에 정의된 각각의 서비스에 대해 실행됩니다.

1.6.1.5. /etc/sysconfig/ha/lvs.cf

이는 LVS 설정 파일입니다. 직접 또는 간접적으로 모든 데몬은 이 파일에서 설정 정보를 얻게 됩니다.

1.6.1.6. Piranha Configuration Tool

LVS 모니터링, 설정, 관리 용 웹 기반 도구로 /etc/sysconfig/ha/lvs.cf LVS 설정 파일을 관리하기 위한 기본값 도구입니다.

1.6.1.7. send_arp

이 프로그램은 장애조치 중 하나의 노드에서 다른 노드로 유동 IP 주소가 변경되었을때 ARP 브로드캐스트를 전송합니다.
2장. LVS 초기 설정 reviews important post-installation configuration steps you should take before configuring Red Hat Enterprise Linux to be an LVS router.

2장. LVS 초기 설정

Red Hat Enterprise Linux를 설치한 후에, LVS 라우터 및 실제 서버를 설정하기 위해 기본적인 설정 단계를 따르셔야 합니다. 다음 부분에서는 초기 설정 단계에 대해 자세히 설명합니다.

참고

LVS를 시작하여 활성화 노드가된 LVS 라우터 노드를 주 노드라고 합니다. LVS를 설정할 때 주 노드에서 Piranha Configuration Tool를 사용합니다.

2.1. LVS 라우터 상의 설정 서비스

Red Hat Enterprise Linux 설치 프로그램으로 LVS 설정에 필요한 모든 요소를 설치할 수 있지만, LVS를 설정하기 전에 필요한 서비스를 활성화시켜야 합니다. LVS 라우터에 필요한 부팅시 시작할 서비스를 설정합니다. Red Hat Enterprise Linux에서 부팅시 활성화할 세 개의 서비스 설정 도구가 있습니다: 명령행 프로그램 chkconfig, ncurses 기반 프로그램 ntsysv, 그래픽 Services Configuration Tool. 이러한 도구를 사용하시려면 root 액세스가 필요합니다.

참고

root 액세스를 얻으려면 쉘 프롬프트를 열고 su - 명령 뒤에 root 암호를 입력합니다. 예:
$ su - root password
LVS 라우터에서 부팅시 활성화되도록 설정해야 할 세 가지의 서비스가 있습니다:
  • piranha-gui 서비스 (주 노드에서만)
  • pulse 서비스
  • sshd 서비스
다중 포트 서비스를 클러스터링하거나 또는 방화벽 표시 기능을 사용할 경우, iptables 서비스를 활성화해야 합니다.
이러한 서비스가 런레벨 3과 5에서 활성화되도록 설정하는 것이 좋습니다. 이를 위해 chkconfig를 사용하며 각각의 서비스에 대해 다음과 같은 명령을 입력합니다:
/sbin/chkconfig --level 35 daemon on
위의 명령에서, daemon을 활성화하려는 서비스의 이름으로 대체합니다. 시스템 상의 서비스 목록을 얻고, 어떤 런레벨에서 활성화되도록 설정되었는지를 알려면 다음과 같은 명령을 실행합니다:
/sbin/chkconfig --list

주의

Turning any of the above services on using 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.
For more information on runlevels and configuring services with 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 암호 설정

주요 LVS 라우터에서 처음으로 Piranha Configuration Tool를 사용하기 전에 암호를 설정하여 이 라우터로의 액세스를 제한해야 합니다. 이를 실행하기 위해 root로 로그인하여 다음과 같은 명령을 사용합니다:
/usr/sbin/piranha-passwd
이러한 명령을 입력한 후에 프롬프트에서 관리자 암호를 설정합니다.

주의

암호의 보안을 강화하려면 고유명사, 자주 사용되는 약어, 사전에 있는 단어 등을 암호에 포함시키지 않습니다. 시스템 상에 암호가 풀린 상태로 두지 않습니다.
Piranha Configuration Tool를 활성화하는 도중 암호가 변경되었을 경우, 관리자는 새로운 암호를 알려주어야 합니다.

2.3. Piranha Configuration Tool 서비스 시작

Piranha Configuration Tool에 대한 암호를 설정한 후에 /etc/rc.d/init.d/piranha-gui에 있는 piranha-gui 서비스를 시작 또는 재시작합니다. 이를 실행하기 위해 root로 다음과 같은 명령을 입력합니다:
/sbin/service piranha-gui start
or
/sbin/service piranha-gui restart
Issuing this command starts a private session of the Apache HTTP Server by calling the symbolic link /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:
  1. 시스템에 Apache HTTP Server가 설치되어 있어야 합니다.
  2. service 명령으로 Apache HTTP Server를 정지하거나 재시작하면 piranha-gui 서비스가 중지됩니다.

주의

/sbin/service httpd stop 또는 /sbin/service httpd restart 명령이 LVS 라우터에서 실행될 경우, 다음과 같은 명령을 사용하여 piranha-gui 서비스를 시작해야 합니다.
/sbin/service piranha-gui start
The 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 Configuration Tool는 기본값으로 포트 3636에서 실행됩니다. 이 포트 번호를 변경하려면 piranha-gui 웹 서버 설정 파일 /etc/sysconfig/ha/conf/httpd.conf의 섹션 2에 있는 Listen 3636 행을 변경합니다.
Piranha Configuration Tool를 사용하려면 최소 텍스트 전용 웹 브라우져가 있어야 합니다. 주요 LVS 라우터에서 웹 브라우져를 시작할 경우 http://localhost:3636을 엽니다. localhost를 주요 LVS 라우터의 호스트명이나 IP 주소로 대체하여 웹 브라우져에서 Piranha Configuration Tool를 사용할 수 있습니다.
브라우저가 Piranha Configuration Tool에 연결되면 설정 서비스를 액세스하기 위해 로그인해야 합니다. Username 란에 piranha를 입력하고 piranha 란에 piranha-passwd를 사용하여 암호를 설정합니다.
Piranha Configuration Tool가 실행되면 네트워크를 통해 이 도구로의 액세스를 제한할 수 있습니다. 다음 부분에서는 이를 실행하는 방법에 대해 설명합니다.

2.4. Piranha Configuration Tool로의 액세스 제한

Piranha Configuration Tool는 사용 가능한 사용자명과 암호를 요구합니다. Piranha Configuration Tool로 전달된 모든 데이터가 평문으로 되어 있으므로 신뢰하는 네트워크나 또는 로컬 컴퓨터로의 액세스만으로 제한할 것을 권장합니다.
The easiest way to restrict access is to use the Apache HTTP Server's built in access control mechanisms by editing /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
로컬 호스트에게만 Piranha Configuration Tool의 액세스를 제한하기 위해 .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 192.168.1.100
Allow from 172.16.57
예에서 192.168.1.100의 IP 주소를 갖는 컴퓨터와 172.16.57/24 네트워크 상의 컴퓨터의 웹 브라우져만이 Piranha Configuration Tool에 액세스할 수 있습니다.

주의

Piranha Configuration Tool .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. 패킷 포워딩 활성화

LVS 라우터가 실제 서버에 네트워크 패킷을 올바르게 포워딩하기 위해 각각의 LVS 라우터 노드는 커널에서 IP 포워딩을 활성화 시켜야 합니다. root로 로그인하여 /etc/sysctl.conf에 있는 net.ipv4.ip_forward = 0 행을 다음과 같이 변경합니다:
net.ipv4.ip_forward = 1
시스템 재부팅 시 변경 사항을 적용합니다.
IP 포워딩이 활성화 되었는지를 확인하기 위해 root로 다음과 같은 명령을 실행합니다:
/sbin/sysctl net.ipv4.ip_forward
위의 명령으로 1이 출력되면 IP 포워딩이 활성화된 것입니다. 0 값이 출력될 경우, 다음과 같은 명령을 사용하여 수동으로 IP 포워딩을 활성화시킬 수 있습니다:
/sbin/sysctl -w net.ipv4.ip_forward=1

2.6. 실제 서버에서 서비스 설정

실제 서버가 Red Hat Enterprise Linux 시스템일 경우, 부팅 시 활성화할 적절한 서버 데몬을 설정합니다. 이러한 데몬에는 웹 서비스 용 httpd나 FTP 또는 Telnet 서비스 용 xinetd가 있습니다.
원격으로 실제 서버를 액세스하여 sshd 데몬을 설치하고 실행하는 것이 유용할 수 도 있습니다.

3장. LVS 설정

LVS는 LVS 라우터 및 실제 서버라는 두 개의 기본 그룹으로 구성되어 있습니다. SPOF (single point of failure)를 방지하려면, 각각의 그룹에는 최소 두 개의 멤버 시스템이 있어야 합니다.
LVS 라우터 그룹은 Red Hat Enterprise Linux에서 실행되고 있는 두 개의 동일한 또는 유사한 시스템으로 구성되어 있어야 합니다. 하나의 시스템이 긴급 대기 모드에 있을 동안 다른 하나는 활성 LVS 라우터로 실행되어 두 개의 시스템이 가능한 동일한 기능을 가지고 있어야 합니다.
실제 서버 그룹 용 하드웨어를 선택 및 설정하기 전, 사용할 세 가지 LVS 토폴로지를 결정해야 합니다.

3.1. NAT LVS 네트워크

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 용 네트워크 인터페이스 설정

To set up LVS with NAT, you must first configure the network interfaces for the public network and the private network on the LVS routers. In this example, the LVS routers' public interfaces (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.
So on the active or primary LVS router node, the public interface's network script, /etc/sysconfig/network-scripts/ifcfg-eth0, could look something like this:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.26.9
NETMASK=255.255.255.0
GATEWAY=192.168.26.254
LVS 라우터 상의 개인 NAT 인터페이스 용 /etc/sysconfig/network-scripts/ifcfg-eth1 파일은 다음과 같이 나타납니다:
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.11.12.9
NETMASK=255.255.255.0
In this example, the VIP for the LVS router's public interface will be 192.168.26.10 and the VIP for the NAT or private interface will be 10.11.12.10. So, it is essential that the real servers route requests back to the VIP for the NAT interface.

중요

The sample Ethernet interface configuration settings in this section are for the real IP addresses of an LVS router and not the floating IP addresses. To configure the public and private floating IP addresses the administrator should use the Piranha Configuration Tool, as shown in 4.4절. “GLOBAL SETTINGS and 4.6.1절. “VIRTUAL SERVER 하부 섹션”.
After configuring the primary LVS router node's network interfaces, configure the backup LVS router's real network interfaces — taking care that none of the IP address conflict with any other IP addresses on the network.

중요

백업 노드에 있는 인터페이스는 주 노드에 있는 인터페이스와 같은 네트워크를 사용해야 합니다. 예를 들어, eth0가 주 노드 상의 공개 네트워크에 연결되어 있을 경우, 이는 백업 노드 상의 공개 네트워크에도 연결되어 있어야 합니다.

3.1.2. 실제 서버에서 라우팅

NAT 토폴로지에서 실제 서버 네트워크 인터페이스 설정 시 기억해 두어야 할 가장 중요한 사항은 LVS 라우터의 NAT 유동 IP 주소 용 게이트웨이를 설정해야 하는 것입니다. 예에서, 이 주소는 10.11.12.10으로 되어 있습니다.

참고

Once the network interfaces are up on the real servers, the machines will be unable to ping or connect in other ways to the public network. This is normal. You will, however, be able to ping the real IP for the LVS router's private interface, in this case 10.11.12.8.
So the real server's /etc/sysconfig/network-scripts/ifcfg-eth0 file could look similar to this:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.11.12.1
NETMASK=255.255.255.0
GATEWAY=10.11.12.10

주의

실제 서버의 GATEWAY= 행에 하나 이상의 네트워크 인터페이스가 설정되어 있을 경우, 첫번째로 나타나는 것이 게이트웨이가 됩니다. 따라서 eth0eth1이 설정되어 있고 eth1이 LVS에 사용될 경우, 실제 서버가 요청을 올바르게 라우트하지 못할 수 도 있습니다.
/etc/sysconfig/network-scripts/ 디렉토리에 있는 네트워크 인터페이스에서 ONBOOT=no를 설정하거나 또는 처음으로 나타나는 인터페이스에 게이트웨이가 올바르게 설정되어 있는 지를 확인하여 관련 없는 네트워크 인터페이스를 비활성화시키는 것이 좋습니다.

3.1.3. LVS 라우터에서 NAT 라우팅 활성화

In a simple NAT LVS configuration where each clustered service uses only one port, like HTTP on port 80, the administrator needs only to enable packet forwarding on the LVS routers for the requests to be properly routed between the outside world and the real servers. See 2.5절. “패킷 포워딩 활성화 ” for instructions on turning on packet forwarding. However, more configuration is necessary when the clustered services require more than one port to go to the same real server during a user session. For information on creating multi-port services using firewall marks, see 3.4절. “다중 포트 서비스 및 LVS ”.
Once forwarding is enabled on the LVS routers and the real servers are set up and have the clustered services running, use the Piranha Configuration Tool to configure LVS as shown in 4장. Piranha Configuration Tool를 사용하여 LVS 라우터 설정 .

주의

Do not configure the floating IP for 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 하부 섹션”.
When finished, start the 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

As mentioned in 1.4.2절. “직접 라우팅 ”, direct routing allows real servers to process and route packets directly to a requesting user rather than passing outgoing packets through the LVS router. Direct routing requires that the real servers be physically connected to a network segment with the LVS router and be able to process and direct outgoing packets as well.
네트워크 레이아웃
직접 라우팅 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

In order to configure direct routing using 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 요청을 무시하기 위해 각각의 실제 서버를 설정하려면 다음과 같은 절차를 실행합니다:
  1. 실제 서버에서 각각의 가상 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>
    
    이로인해 실제 서버는 가상 IP 주소에 대한 모든 ARP 요청을 무시하게 되며 가상 IP가 들어있는 나가는 ARP 응답을 변경하고 대신 서버의 실제 IP를 포함시킵니다. 모든 VIP에 해당하는 ARP 요청에 응답하는 노드만이 현재 활성 LVS 노드에 있게 됩니다.
  2. 각각의 실제 서버에서 이러한 작업을 완료한 후, 다음과 같은 명령을 사용하여 ARP 테이블 항목을 저장합니다:
    service arptables_jf save
    chkconfig --level 2345 arptables_jf on
    chkconfig 명령으로 부팅시 — 네트워크가 시작되기 전 arptables 설정을 시스템으로 다시 불러올 수 있습니다.
  3. IP 알리아스를 생성하기 위해 ifconfig를 사용하여 모든 실제 서버에 있는 가상 IP 주소를 설정합니다. 예:
    # ifconfig eth0:1 192.168.76.24 netmask 255.255.252.0 broadcast 192.168.79.255 up
    또는 iproute2 ip 유틸리티를 사용합니다 예:
    # ip addr add 192.168.76.24 dev eth0
    이전 부분에서 언급하였듯이 가상 IP 주소는 Red Hat 시스템 설정 도구를 사용하여 부팅시 시작되도록 설정할 수 없습니다. 이러한 문제를 해결하기 위해 /etc/rc.d/rc.local에 이 명령을 사용합니다.
  4. 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 방식을 사용하여 직접 라우팅을 설정하려면 다음과 같은 절차를 실행합니다:
  1. 각각의 실제 서버에서 사용하고자 하는 모든 VIP, 포트, 프로토콜 (TCP or UDP) 조합에 대해 다음과 같은 명령을 실행합니다:
    iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT
    이 명령으로 실제 서버는 VIP로 목적지가 지정된 패킷을 처리하여 주어진 곳으로 포트하게 합니다.
  2. 실제 서버에 설정 사항 저장:
    # service iptables save
    # chkconfig --level 2345 iptables on
    위의 명령은 부팅시 — 네트워크가 시작되기 전 시스템이 iptables 설정을 다시 읽어오게 합니다.

3.3. 설정 종합

사용할 라우팅 방식을 결정한 후에 하드웨어를 네트워크 상에 연결해야 합니다.

중요

LVS 라우터에 있는 어댑터 장치는 동일한 네트워크를 액세스하도록 설정해야 합니다. 예를 들어 eth0가 공개 네트워크에 연결되어 있고 eth1이 개인 네트워크에 연결되어 있을 경우 백업 LVS 라우터에 있는 동일한 장치는 동일한 네트워크로 연결해야 합니다.
부팅시 나타나게 할 첫 번째 인터페이스에 있는 게이트웨이는 라우팅 테이블에 추가하며 다른 인터페이스에 있는 다음의 게이트는 무시됩니다. 이는 실제 서버를 설정할 때 고려해야 할 중요 사항입니다.
물리적으로 하드웨어를 연결한 후에, 주요 LVS 라우터 및 백업 LVS 라우터에 있는 네트워크 인터페이스를 설정합니다. system-config-network와 같은 그래픽 어플리케이션을 사용하거나 수동으로 네트워크 스크립트를 편집하여 설정할 수 있습니다. system-config-network를 사용하여 장치를 추가하는 방법에 대한 자세한 내용은 Red Hat Enterprise Linux 활용 가이드에 있는 네트워크 설정 장을 참조하시기 바랍니다. 이 장의 나머지 부분에서는 수동으로 또는 Piranha Configuration Tool를 통해 네트워크 인터페이스 변경 예를 다룹니다.

3.3.1. 일반적인 LVS 네트워킹 정보

Piranha Configuration Tool를 사용하여 LVS를 설정하기 전 LVS 라우터에 있는 공개 및 개인 네트워크에 해당하는 실제 IP 주소를 설정합니다. 각각의 토폴로지에 있는 섹션에서 네트워크 주소의 예가 있지만 실제 네트워크 주소가 필요합니다. 아래에는 네트워크 인터페이스를 활성화하거나 상태를 확인하기 위해 사용되는 명령이 있습니다.
실제 네트워크 인터페이스 활성화
실제 네트워크 인터페이스를 활성화하기 위해 root로 다음과 같은 명령을 사용합니다, 여기서 N은 해당 인터페이스 번호로 대체합니다.(eth0eth1)
/sbin/ifup ethN

주의

Do not use the ifup scripts to bring up any floating IP addresses you may configure using Piranha Configuration Tool (eth0:1 or eth1:1). Use the service command to start pulse instead (see 4.8절. “LVS 시작하기 ” for details).
실제 네트워크 인터페이스 비활성화
실제 네트워크 인터페이스를 비활성화시키기 위해 root로 다음과 같은 명령을 사용합니다, 여기서 N은 해당 인터페이스 번호로 대체합니다. (eth0eth1)
/sbin/ifdown ethN
네트워크 인터페이스 상태 확인
어떤 네트워크 인터페이스가 활성화되어 있는 지를 확인하려면 다음과 같은 명령을 사용합니다:
/sbin/ifconfig
컴퓨터에 해당하는 라우팅 테이블을 보려면, 다음과 같은 명령을 실행합니다:
/sbin/route

3.4. 다중 포트 서비스 및 LVS

LVS routers under any topology require extra configuration when creating multi-port LVS services. Multi-port services can be created artificially by using firewall marks to bundle together different, but related protocols, such as HTTP (port 80) and HTTPS (port 443), or when LVS is used with true multi-port protocols, such as FTP. In either case, the LVS router uses firewall marks to recognize that packets destined for different ports, but bearing the same firewall mark, should be handled identically. Also, when combined with persistence, firewall marks ensure connections from the client machine are routed to the same host, as long as the connections occur within the length of time specified by the persistence parameter. For more on assigning persistence to a virtual server, see 4.6.1절. “VIRTUAL SERVER 하부 섹션”.
실제 서버에서의 로드 밸런스를 유지하기 위해 사용된 메카니즘 — IPVS —은 패킷에 지정된 방화벽 표시 기능을 인식할 수 있으나 그 자체로 방화벽 표시 기능을 지정할 수는 없습니다. 방화벽 표시 기능을 지정하는 작업은 Piranha Configuration Tool를 제외한 네트워크 패킷 필터, iptables에 의해 실행되어야 합니다.

3.4.1. 방화벽 표시 기능 지정

특정 포트로 목적지가 지정된 패킷에 방화벽 표시 기능을 지정하기 위해 관리자는 iptables를 사용해야 합니다.
This section illustrates how to bundle HTTP and HTTPS as an example; however, FTP is another commonly clustered multi-port protocol. If an LVS is used for FTP services, refer to 3.5절. “FTP 설정 ” for configuration details.
방화벽 규칙을 사용할 때 기억해 두어야 할 기본적인 규칙은 Piranha Configuration Tool에서 방화벽 규칙을 사용하는 모든 프로토콜의 경우 네트워크 패킷에 표시 기능을 지정하기 위해 적당한 iptables 규칙이 있어야 합니다.
네트워크 패킷 필터 규칙을 생성하기 전에 이미 생성된 규칙이 없는 지를 확인합니다. 이를 실행하기 위해 쉘 프롬프트를 열고 root로 로그인하여 다음을 실행합니다:
/sbin/service iptables status
iptables이 실행되지 않을 경우, 바로 프롬프트가 다시 나타납니다.
iptables가 활성화되어 있을 경우, 규칙 모음을 보여줍니다. 규칙이 나타나면 다음과 같은 명령을 입력합니다:
/sbin/service iptables stop
기존에 있는 규칙이 중요한 것일 경우, /etc/sysconfig/iptables의 내용을 확인하고 저장해 두어야할 규칙을 안전한 장소에 복사해 둡니다.
아래에는 포트 80 및 443에서 유동 IP 주소 n.n.n.n로 목적지가 지정된 들어오는 소통량에 같은 방화벽 표시 기능 80을 지정한 규칙이 있습니다.
/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
For instructions on assigning the VIP to the public network interface, see 4.6.1절. “VIRTUAL SERVER 하부 섹션”. Also note that you must log in as root and load the module for iptables before issuing rules for the first time.
위의 iptables 명령에서 n.n.n.n은 HTTP 및 HTTPS 가상 서버에 해당하는 유동 IP로 대체해야 합니다. 이러한 명령은 포트 상의 VIP에서 인식되는 모든 소통량에 대해 80이라는 방화벽 표시를 지정하는 효과를 갖게 되고, 80이라는 방화벽 표시는 IPVS에 의해 차례로 인식되어 올바르게 포워드됩니다.

주의

The commands above will take effect immediately, but do not persist through a reboot of the system. To ensure network packet filter settings are restored upon reboot, refer to 3.6절. “네트워크 패킷 필터 설정 저장 ”

3.5. FTP 설정

FTP (File Transport Protocol)는 LVS 환경에서 명백한 가능성을 보여준 다중 포트 프로토콜입니다. 이러한 본질적 가능성을 이해하기 위해 FTP 작동 방법에 대한 중요 사항을 파악하고 있어야 합니다.

3.5.1. FTP 작동 방법

대부분의 다른 서버 클라이언트 관계에 있어서 클라이언트 컴퓨터가 특정 포트에 있는 서버로의 연결을 오픈하면 서버는 클라이언트에 응답합니다. FTP 클라이언트가 FTP 서버에 연결되면 FTP 제어 포트 21로의 연결을 오픈합니다. 그 후 클라이언트는 FTP 서버에게 수동 또는 능동 연결 모드로 할 지를 지정합니다. 클라이언트에 의해 지정된 연결 모드는 서버 응답 방법 및 어떤 포트에서 트랜잭션을 실행할 지를 결정합니다.
데이터 연결에는 다음과 같이 두 가지 유형이 있습니다:
능동 연결 모드
능동 연결 모드를 사용할 경우, 서버는 클라이언트 컴퓨터에 있는 포트 20에서 상위 범위의 포트로 클라이언트로의 데이터 연결을 오픈합니다. 서버에 있는 모든 데이터는 이 연결로 지나가게 됩니다.
수동 연결 모드
수동 연결 모드를 사용할 경우, 클라이언트는 FTP 서버에게 10,000 이상의 포트에서 수동 연결 모드를 사용할 것을 요청합니다. 그 뒤 서버는 이와 같은 특정 세션을 위해 해당 포트를 바인드하고 클라이언트에게 포트 번호를 전달합니다. 클라이언트는 데이터 연결을 위해 새로 바인드된 포트를 엽니다. 클라이언트에 의한 각각의 데이터 요청으로 데이터 연결이 분리됩니다. 현재 대부분의 FTP 클라이언트는 서버에서 데이터를 요청할 때 수동 연결 모드를 사용합니다.

참고

클라이언트는 서버가 아닌 연결 모드 유형을 결정합니다. 이는 FTP를 효과적으로 클러스터해야 함을 의미하며, 수동 및 능동 연결 모드를 처리하기 위해 LVS 라우터를 설정해야 합니다.
FTP 클라이언트/서버는 Piranha Configuration Tool와 IPVS가 알지 못하는 대량의 포트를 열게 될 수 도 있습니다.

3.5.2. LVS 라우팅에 미치는 영향

IPVS 패킷 포워딩은 포트 번호나 방화벽 표시에 의해 구별되는 클러스터로 들어오고 나가는 모든 연결 만을 허용합니다. 클러스터 외부에 있는 클라이언트가 처리를 위해 IPVS가 설정되지 않은 포트를 열려고 할 경우, 연결이 종료됩니다. 이와 유사하게, 실제 서버가 IPVS가 알지 못하는 포트에 있는 인터넷으로 연결하려 할 경우, 연결이 종료됩니다. 인터넷 상의 FTP 클라이언트에서의 모든 연결에는 반드시 동일한 방화벽 표시 기능이 지정되어 있어야 하고 FTP 서버에서의 모든 연결은 반드시 네트워크 패킷 필터링 규칙을 사용하여 인터텟으로 올바르게 포워드되어야 합니다.

3.5.3. 네트워크 패킷 필터 규칙 생성

Before assigning any 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.
Below are rules which assign the same firewall mark, 21, to FTP traffic. For these rules to work properly, you must also use the VIRTUAL SERVER subsection of Piranha Configuration Tool to configure a virtual server for port 21 with a value of 21 in the Firewall Mark field. See 4.6.1절. “VIRTUAL SERVER 하부 섹션” for details.

3.5.3.1. 능동 연결 모드 규칙

능동 연결 모드에 해당하는 규칙에서는 커널이 포트 20 상의 내부적 유동 IP 주소로 들어오는 연결을 허용하고 포워드하게 합니다.
다음의 iptables 명령에서는 LVS 라우터가 IPVS가 알지 못하는 실제 서버에서 나가는 연결을 허용하게 합니다:
/sbin/iptables -t nat -A POSTROUTING -p tcp -s n.n.n.0/24 --sport 20 -j MASQUERADE
In the 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. 수동 연결 모드 규칙

수동 연결 모드 규칙에서는 인터넷에서 다양한 범위의 포트 — 10,000 ~ 20,000에 있는 서비스에 해당하는 유동 IP로의 들어오는 연결에 방화벽 표시 기능을 지정합니다.

주의

수동 연결 모드에 대해 포트 범위에 제한을 둘 경우, VSFTP 서버를 설정하여 포트 범위를 일치시켜야 합니다. 이를 위해 /etc/vsftpd.conf에 다음과 같은 행을 추가합니다:
pasv_min_port=10000
pasv_max_port=20000
수동 FTP 연결을 위해 클라이언트에게 보여지는 서버 주소를 관리해야 합니다. LVS 시스템에 라우트된 NAT에서 /etc/vsftpd.conf에 다음과 같은 행을 추가하여 연결시 클라이언트에게 보여지는 VIP에 실제 서버 IP 주소를 덮어씁니다. 예:
pasv_address=n.n.n.n
n.n.n.n을 LVS 시스템의 VIP 주소로 대체합니다.
다른 FTP 서버 설정의 경우, 각각의 관련 문서를 참조하시기 바랍니다.
이는 대부분의 경우에 대해 광범위해야 합니다; 하지만, 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.nPiranha Configuration ToolVIRTUAL SERVER 하부섹션에서 지정된 FTP 가상 서버에 해당하는 유동 IP로 대체합니다.

주의

The commands above take effect immediately, but do not persist through a reboot of the system. To ensure network packet filter settings are restored after a reboot, see 3.6절. “네트워크 패킷 필터 설정 저장 ”
Finally, you need to be sure that the appropriate service is set to activate on the proper runlevels. For more on this, refer to 2.1절. “LVS 라우터 상의 설정 서비스 ”.

3.6. 네트워크 패킷 필터 설정 저장

네트워크 패킷 필터를 적절하게 설정한 후에, 설정 사항을 저장하여 재부팅 후 복구되게 합니다. iptables의 경우 다음과 같은 명령을 사용합니다:
/sbin/service iptables save
이는 /etc/sysconfig/iptables에 설정 사항을 저장하므로 부팅 시 다시 불러올 수 있습니다.
Once this file is written, you are able to use the /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 서비스 시작 ”.
Finally, you need to be sure the appropriate service is set to activate on the proper runlevels. For more on this, see 2.1절. “LVS 라우터 상의 설정 서비스 ”.
다음 부분에서는 LVS 라우터를 설정하기 위해 Piranha Configuration Tool를 사용하는 방법과 LVS를 활성화시키기 위해 필요한 절차에 대해 설명합니다.

4장. Piranha Configuration Tool를 사용하여 LVS 라우터 설정

Piranha Configuration Tool는 LVS에 필요한 설정 파일 — /etc/sysconfig/ha/lvs.cf을 생성하기 위한 구조적 접근 방법을 제공합니다. 다음 부분에서는 Piranha Configuration Tool의 기본적인 실행 방법 및 설정 완료 후 LVS를 활성화하는 방법에 대해 설명합니다.

중요

LVS에 필요한 설정 파일은 엄격한 포맷 규칙을 따릅니다. Piranha Configuration Tool를 사용하는 것은 lvs.cf에서 구문 오류가 발생하지 않게 하는 가장 좋은 방법으로 결국 소프트웨어 장애가 발생하지 않게 됩니다.

4.1. 필요한 소프트웨어

piranha-gui 서비스는 Piranha Configuration Tool를 사용하기 위해 주요 LVS 라우터에서 실행되고 있어야 합니다. LVS를 설정하려면 최소한 links와 같이 텍스트 전용 웹 브라우저가 필요합니다. 다른 컴퓨터에서 LVS 라우터에 액세스하고 있을 경우, root 사용자로 주요 LVS 라우터에 ssh 연결이 되어 있어야 합니다.
주요 LVS 라우터를 설정하면서 동시에 터미널 창에서 ssh 연결을 유지하는 것이 좋습니다. 이는 pulse 및 기타 다른 서비스 재시작, 네트워크 패킷 필터 설정, 문제 해결 도중 /var/log/messages 모니터하는데 안전한 방법을 제공합니다.
다음 부분에서는 Piranha Configuration Tool의 각각의 설정 페이지를 살펴보고 LVS 설정을 위해 이를 사용하는 방법에 대해 설명합니다.

4.2. Piranha Configuration Tool로 로그인

When configuring LVS, you should always begin by configuring the primary router with the Piranha Configuration Tool. To do this,verify that the piranha-gui service is running and an administrative password has been set, as described in 2.2절. “Piranha Configuration Tool 암호 설정 ”.
If you are accessing the machine locally, you can open 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”.
The Welcome Panel

그림 4.1. The Welcome Panel

Login 버튼을 클릭하여 Usernamepiranha를 입력하고 Password 란에서 생성한 관리자 암호를 입력합니다.
Piranha Configuration Tool에는 네 개의 주요 화면이나 패널이 있으며, Virtual Servers에는 네 개의 하부섹션이 있습니다. CONTROL/MONITORING 패널은 로그인 화면 이후에 가장 처음으로 나타나는 패널입니다.

4.3. CONTROL/MONITORING

CONTROL/MONITORING 패널에서는 LVS의 제한적 런타임 상태를 보여줍니다. 이는 pulse 데몬, LVS 라우팅 테이블, LVS 스폰 nanny 프로세스의 상태를 보여줍니다.

참고

The fields for CURRENT LVS ROUTING TABLE and CURRENT LVS PROCESSES remain blank until you actually start LVS, as shown in 4.8절. “LVS 시작하기 ”.
The CONTROL/MONITORING Panel

그림 4.2. The CONTROL/MONITORING Panel

Auto update
이 페이지에 있는 상태 보기는 사용자 설정 시간 간격으로 자동 업데이트될 수 있습니다. 이 기능을 활성화하려면 Auto update를 클릭하여 Update frequency in seconds (기본값은 10 초임) 텍스트 상자에서 원하는 업데이트 간격을 설정합니다.
10초 보다 짧게 자동 업데이트 간격을 설정하는 것은 좋지 않습니다. 이는 페이지가 너무 자주 업데이트되어 Auto update 간격을 재설정하기를 어렵게 만들기 때문입니다. 이러한 문제가 발생했을 경우, 다른 패널을 클릭한 후 CONTROL/MONITORING으로 다시 돌아옵니다.
Auto update 업데이트 기능은 Mozilla에서와 같이 모든 브라우저에서 작동하지는 않습니다.
Update information now
이 버튼을 클릭하여 상태 정보를 수동으로 업데이트합니다.
CHANGE PASSWORD
이 버튼을 클릭하면 Piranha Configuration Tool의 관리 암호를 변경하는 방법에 관한 내용이 있는 도움말 화면으로 이동합니다.

4.4. GLOBAL SETTINGS

The GLOBAL SETTINGS panel is where the you define the networking details for the primary LVS router's public and private network interfaces.
The GLOBAL SETTINGS Panel

그림 4.3. The GLOBAL SETTINGS Panel

The top half of this panel sets up the primary LVS router's public and private network interfaces. These are the interfaces already configured in 3.1.1절. “NAT를 사용한 LVS 용 네트워크 인터페이스 설정 ”.
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 라우트 설정을 공유하므로 Direct Routing 설정을 위해 개인 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 라우팅을 선택합니다.
Direct Routing 버튼을 클릭하여 직접 라우팅을 선택합니다.
The next three fields deal specifically with the NAT router's virtual network interface connecting the private network with the real servers. These fields do not apply to the direct routing network type.
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 주소가 됩니다.

주의

이 페이지 작성을 완료한 후, ACCEPT 버튼을 클릭하여 새 패널 선택 시 변경한 사항을 잃지 않도록 합니다.

4.5. REDUNDANCY

REDUNDANCY 패널에서는 백업 LVS 라우터 노드를 설정하고 다양한 하트비트 모니터링 옵션을 설정합니다.

참고

The first time you visit this screen, it displays an "inactive" Backup status and an ENABLE button. To configure the backup LVS router, click on the ENABLE button so that the screen matches 그림 4.4. “The REDUNDANCY Panel”.
The REDUNDANCY Panel

그림 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 주소를 입력하고 ACCEPT 버튼을 클릭합니다.
나머지 패널에서는 하트비트 채널을 설정하며, 문제 발생의 경우 백업 노드가 주요 노드를 모니터하는데 사용됩니다.
Heartbeat Interval (seconds)
하트비트 사이의 초 간격을 설정합니다 — 백업 노드가 주요 LVS 노드의 기능 상태를 점검하는 간격
Assume dead after (seconds)
몇 초가 경과한 후 주요 LVS 노드가 응답하지 않을 경우, 백업 LVS 라우터 노드가 장애 조치를 시작하게 됩니다.
Heartbeat runs on port
하트비트가 주요 LVS 노드와 통신하는 포트를 설정합니다. 빈 칸으로 되어 있을 경우 기본값으로 539를 설정합니다.

주의

새 패널을 선택했을 때 이 패널에서 변경한 사항을 손실하지 않으려면 ACCEPT 버튼을 클릭해야 합니다.

4.6. VIRTUAL SERVERS

VIRTUAL SERVERS 패널에서는 최근에 지정된 가상 서버에 대한 정보를 보여줍니다. 각각의 테이블 엔트리에서는 가상 서버의 상태, 서버 이름, 서버에 지정된 가상 IP, 가상 IP의 넷마스크, 서비스가 통신하는 포트 번호, 사용되는 프로토콜, 가상 장치 인터페이스의 상태를 보여 줍니다.
The VIRTUAL SERVERS Panel

그림 4.5. The VIRTUAL SERVERS Panel

VIRTUAL SERVERS 패널에 있는 각각의 서버는 다음의 스크린이나 또는 하부 섹션에서 설정할 수 있습니다.
서비스를 추가하려면 ADD 버튼을 클릭합니다. 서비스를 삭제하려면 가상 서버 옆에 위치한 라디오 버튼을 클릭하여 삭제하려는 서비스를 선택한 후 DELETE 버튼을 클릭합니다.
테이블에 있는 가상 서버를 활성화 또는 비활성화하기 위해 라디오 버튼을 클릭한 후 (DE)ACTIVATE 버튼을 클릭합니다.
가상 서버를 추가한 후에 왼쪽에 있는 라디오 버튼을 클릭하여 이를 설정할 수 있으며 EDIT 버튼을 클릭하여 VIRTUAL SERVER 하부 섹션을 볼 수 있습니다.

4.6.1. VIRTUAL SERVER 하부 섹션

The VIRTUAL SERVER subsection panel shown in 그림 4.6. “The VIRTUAL SERVERS Subsection” allows you to configure an individual virtual server. Links to subsections related specifically to this virtual server are located along the top of the page. But before configuring any of the subsections related to this virtual server, complete this page and click on the ACCEPT button.
The VIRTUAL SERVERS Subsection

그림 4.6. The VIRTUAL SERVERS Subsection

Name
가상 서버를 확인하기 위한 기술적인 이름이어야 합니다. 이는 컴퓨터의 호스트명이 아니므로 기술적이고 식별하기 쉬운 것으로 정해야 합니다. HTTP와 같이 가상 서버로 사용된 프로토콜을 참조할 수 있습니다.
Application port
서비스 어플리케이션이 청취할 포트 번호를 입력합니다. 예에서는 HTTP 서비스에 대해 포트 80이 사용되고 있습니다.
Protocol
드롭 다운 메뉴에서 UDP 또는 TCP를 선택합니다. 일반적으로 웹 서버는 TCP 프로토콜이 사용되므로 위의 예에서는 TCP가 선택되어 있습니다.
Virtual IP Address
Enter the virtual server's floating IP address in this text field.
Virtual IP Network Mask
드롭 다운 메뉴에 있는 가상 서버의 넷 마스크를 설정합니다.
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절. “지속성 및 방화벽 표시 기능 ”.
Persistence Network Mask
특정 서브넷에 지속성을 제한하기 위해 드롭다운 메뉴에서 적절한 네트워크 마스크를 선택합니다.

참고

방화벽 표시 기능이 생겨나기 전에 서브넷에 의해 제한된 지속성 기능으로 연결을 묶기에는 미숙했었습니다. 현재, 방화벽 표시 기능과 관련하여 동일한 결과를 얻기 위해 지속성 기능을 사용하는 것이 가장 좋습니다.

주의

새 패널을 선택했을 때 이 패널에서 변경한 사항을 손실하지 않으려면 ACCEPT 버튼을 클릭해야 합니다.

4.6.2. REAL SERVER 하부 섹션

패널의 상단에 있는 REAL SERVER 하부 섹션 링크를 클릭하면 EDIT REAL SERVER 하부 섹션이 나타납니다. 이는 특정 가상 서비스에 대한 물리적 서버 호스트의 상태를 보여줍니다.
The REAL SERVER Subsection

그림 4.7. The REAL SERVER Subsection

Click the ADD button to add a new server. To delete an existing server, select the radio button beside it and click the DELETE button. Click the EDIT button to load the EDIT REAL SERVER panel, as seen in 그림 4.8. “The REAL SERVER Configuration Panel”.
The REAL SERVER Configuration Panel

그림 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절. “서버 가중치 및 스케줄링 ”.

주의

새 패널을 선택했을 때 이 패널에서 변경한 사항을 손실하지 않으려면 ACCEPT 버튼을 클릭해야 합니다.

4.6.3. EDIT MONITORING SCRIPTS Subsection

페이지 상단의 MONITORING SCRIPTS 링크를 클릭합니다. EDIT MONITORING SCRIPTS 하부 섹션에서 관리자는 가상 서버의 서비스가 각각의 실제 서버에서 잘 작동하는 지를 확인하기 위해 send/expect 문자열 순서를 정할 수 있습니다. 또한 여기서 관리자는 역동적인 데이터 변경을 필요로 하는 서비스를 확인하기 위해 사용자 정의된 스크립트를 지정할 수 있습니다.
The 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 %h after 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 the nanny daemon.
다음은 외부 서비스 확인 스크립트 작성 시 가이드로 사용할 수 있는 예시 스크립트입니다:
#!/bin/sh

TEST=`dig -t soa example.com @$1 | grep -c dns.example.com

if [ $TEST != "1" ]; then
	echo "OK
else
	echo "FAIL"
fi

참고

외부 프로그램이 Sending Program 란에 입력되어 있을 경우 Send 란을 무시합니다.
Send
이 란에 각각의 실제 서버로 보내기 위해 nanny 데몬에 필요한 문자열을 입력합니다. 기본값으로 이 란은 HTTP로 되어 있습니다. 필요에 따라 이를 변경할 수 있습니다. 이 란을 빈 칸으로 비워두었을 경우, nanny 데몬은 포트를 열어 두어 서비스가 실행 되고 있다고 여깁니다.
이 란에는 하나의 전송 순서만이 허용되며 인쇄할 수 있는 ASCII 문자와 다음과 같은 이스케이프 문자이어야만 합니다:
  • 새 줄 표시 경우 \n
  • 캐리지 리턴 경우 \r
  • 탭 경우 \t
  • 그 다음으로 오는 문자를 생략할 경우 \
Expect
서버가 올바르게 작동할 경우 서버가 리턴해야 할 텍스트 응답 방식을 입력합니다. 독자적인 전송 프로그램을 사용할 경우, 전송 명령이 성공적으로 실행되었을 경우 이에 대한 응답을 입력합니다.

참고

서비스를 부르기 위해 무엇을 사용할 지를 결정하기 위해, 실제 서버에서 포트로 telnet 연결을 오픈한 후 리턴값을 확인합니다. 예를 들어, FTP가 220에 연결되어 있다고 보고하면 Send란에 quit를 입력하고 Expect 란에 220을 입력합니다.

주의

새 패널을 선택했을 때 이 패널에서 변경한 사항을 손실하지 않으려면 ACCEPT 버튼을 클릭해야 합니다.
Once you have configured virtual servers using the Piranha Configuration Tool, you must copy specific configuration files to the backup LVS router. See 4.7절. “설정 파일 동기화” for details.

4.7. 설정 파일 동기화

주요 LVS 라우터를 설정한 후에 LVS를 시작하기 전 백업 LVS 라우터에 복사되어야 할 설정 파일이 있습니다.
이러한 파일에는 다음과 같은 것이 있습니다:
  • /etc/sysconfig/ha/lvs.cf — LVS 라우터 용 설정 파일
  • /etc/sysctl — 커널에서 패킷 포워딩을 활성화시키는 설정 파일
  • /etc/sysconfig/iptables — 방화벽 표시 기능을 사용할 경우, 사용 중인 네트워크 패킷 필터에 기반한 파일 중 하나를 동기화시켜야 합니다.

중요

Piranha Configuration Tool를 사용하여 LVS를 설정할 때 /etc/sysctl.conf/etc/sysconfig/iptables 파일은 변경하지 않습니다.

4.7.1. lvs.cf 동기화

LVS 설정 파일, /etc/sysconfig/ha/lvs.cf을 생성하거나 업데이트할 때 마다 백업 LVS 라우터 노드에 이 파일을 복사해 두어야 합니다.

주의

활성화된 LVS 라우터 노드 및 백업 LVS 라우터 노드에는 동일한 lvs.cf 파일이 있습니다. LVS 라우터 노드에서 LVS 설정 파일이 일치하지 않을 경우 장애조치가 실행되지 않을 수 있습니다.
이를 실행하기 위한 가장 좋은 방법은 scp 명령을 사용하는 것입니다.

중요

To use 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
명령에서 n.n.n.n을 백업 LVS 라우터의 실제 IP 주소로 대체합니다.

4.7.2. sysctl 동기화

대부분의 경우 sysctl 파일은 한 번만 수정됩니다. 부팅 시 파일을 읽어 패킷 포워딩을 활성화할 커널을 알려줍니다.

중요

If you are not sure whether or not packet forwarding is enabled in the kernel, see 2.5절. “패킷 포워딩 활성화 ” for instructions on how to check and, if necessary, enable this key functionality.

4.7.3. 네트워크 패킷 필터링 규칙 동기화

iptables을 사용하고 있을 경우, 백업 LVS 라우터에서 올바를 설정 파일을 동기화해야 합니다.
네트워크 필터 규칙을 변경할 경우, 주요 LVS 라우터에서 root로 다음과 같은 명령을 입력합니다:
scp /etc/sysconfig/iptables n.n.n.n:/etc/sysconfig/
명령에서 n.n.n.n을 백업 LVS 라우터의 실제 IP 주소로 대체합니다.
백업 라우터에 ssh 세션을 열거나 또는 root로 컴퓨터에 로그인한 후 다음과 같은 명령을 입력합니다:
/sbin/service iptables restart
Once you have copied these files over to the backup router and started the appropriate services (see 2.1절. “LVS 라우터 상의 설정 서비스 ” for more on this topic) you are ready to start LVS.

4.8. LVS 시작하기

LVS를 시작하려면, 주요 LVS 라우터로 두 개의 root 터미널을 동시에 열거나 또는 동시에 열린 두 개의 root가 주요 LVS 라우터로 ssh 세션을 열게 하는 것이 좋습니다.
하나의 터미널에서, 다음과 같은 명령으로 커널 로그 메세지를 확인합니다:
tail -f /var/log/messages
그 후 다른 터미널로 다음과 같은 명령을 입력하여 LVS를 시작합니다:
/sbin/service pulse start
Follow the progress of the 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 키를 사용합니다.
이 시점에서 부터, 주요 LVS 라우터는 활성 LVS 라우터로도 됩니다. 이 시점에서 LVS에 요청을 하면서 LVS를 서비스로 보내기 전에 백업 LVS 라우터를 시작해야 합니다. 이를 위해, 백업 LVS 라우터 노드에서 설명된 절차를 반복하여 실행합니다.
마지막 단계를 완료하면 LVS가 시작됩니다.

부록 A. Red Hat Cluster로 LVS 사용

로드 밸런싱, 데이터 무결성, 어플리케이션 유용성을 제공하는 고가용성 전자상거래 사이트를 사용하기 위해 Red Hat Cluster와 함께 LVS 라우터를 사용할 수 있습니다.
The configuration in 그림 A.1. “LVS with a Red Hat Cluster” represents an e-commerce site used for online merchandise ordering through a URL. Client requests to the URL pass through the firewall to the active LVS load-balancing router, which then forwards the requests to one of the Web servers. The Red Hat Cluster nodes serve dynamic data to the Web servers, which forward the data to the requesting client.
LVS with a Red Hat Cluster

그림 A.1. LVS with a Red Hat Cluster

Serving dynamic Web content with LVS requires a three-tier configuration (as shown in 그림 A.1. “LVS with a Red Hat Cluster”). This combination of LVS and Red Hat Cluster allows for the configuration of a high-integrity, no-single-point-of-failure e-commerce site. The Red Hat Cluster can run a high-availability instance of a database or a set of databases that are network-accessible to the Web servers.
3-tier 설정에는 역동적인 컨텐트를 필요로 합니다. 웹 서버가 (데이터 변경이 적은) 정적 웹 컨텐트를 사용할 경우 2-tier LVS 설정이 적합한 반면, 웹 서버가 역동적인 컨텐트를 사용할 경우 2-tier LVS 설정이 적합하지 않습니다. 역동적인 컨텐트에는 제품 재고, 구매 주문, 고객 용 데이터베이스가 있으며, 이는 고객이 정확히 업데이트된 정보로 액세스하는 지를 확인하기 위해 모든 웹 서버에서 일치되어야 합니다.
각각의 tier 구조에는 다음과 같은 기능이 있습니다:
  • 첫번째 tier — 웹 요청을 배분하기 위해 로드 밸런싱을 실행하는 LVS 라우터
  • 두번째 tier — 요청을 실행하는 웹 서버 모음
  • 세번째 tier — 웹 서버로 데이터를 보내는 Red Hat Cluster
In an LVS configuration like the one in 그림 A.1. “LVS with a Red Hat Cluster”, client systems issue requests on the World Wide Web. For security reasons, these requests enter a Web site through a firewall, which can be a Linux system serving in that capacity or a dedicated firewall device. For redundancy, you can configure firewall devices in a failover configuration. Behind the firewall are LVS load-balancing routers, which can be configured in an active-standby mode. The active load-balancing router forwards the requests to the set of Web servers.
Each Web server can independently process an HTTP request from a client and send the response back to the client. LVS enables you to expand a Web site's capacity by adding Web servers behind the LVS routers; the LVS routers perform load balancing across a wider set of Web servers. In addition, if a Web server fails, it can be removed; LVS continues to perform load balancing across a smaller set of Web servers.

부록 B. Revision History

고친 과정
고침 5-8.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
고침 5-82012-07-18Anthony Towns
Rebuild for Publican 3.0
고침 2.0-0Mon Feb 08 2010Paul Kennedy
Resolves: 492000
Changes -d to -s in arptables "OUT" directive in "Direct Routing and arptables_jf" section.
고침 1.0-0Tue Jan 20 2009Paul Kennedy
Consolidation of point releases

색인

Symbols

/etc/sysconfig/ha/lvs.cf file, /etc/sysconfig/ha/lvs.cf

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

F

feedback, Feedback
FTP, FTP 설정
([살펴볼 다른 내용] LVS)

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)

법적 공지

Copyright © 2009 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.