Red Hat Training

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

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 토폴로지를 사용하는 것이 좋습니다.