네트워크 부하 분산을 위해 Linux를 사용하는 방법

PHPz
풀어 주다: 2023-06-18 18:45:10
원래의
2876명이 탐색했습니다.

네트워크 부하 분산은 네트워크 트래픽을 여러 서버에 고르게 분산하여 전체 시스템의 가용성과 성능을 향상시키는 방법입니다. Linux 시스템에는 네트워크 부하 분산을 달성하는 데 도움이 되는 몇 가지 도구가 함께 제공됩니다. 이 기사에서는 네트워크 부하 분산을 위해 Linux를 사용하는 방법을 소개합니다.

1. Linux 네트워크 부하 분산의 기본 원리

네트워크 부하 분산의 기본 원리는 네트워크 트래픽을 여러 서버에 분산시키는 것입니다. 배포 방법에는 폴링 방법, 가중 폴링 방법, IP 해싱 방법, 최소 연결 수 방법 등이 있습니다.

Linux에서는 네트워크 부하 분산을 위해 LVS(Linux Virtual Server) 기술을 사용할 수 있습니다. LVS는 네트워크 트래픽을 여러 서버에 분산시키는 기술입니다. 이는 스케줄러(로드 밸런서라고도 함)와 여러 백엔드 서버로 구성됩니다.

2. LVS 설치 및 구성

  1. LVS 설치

LVS를 구성하기 전에 ipvsadm 및 keepalived를 포함한 필수 소프트웨어 패키지를 설치해야 합니다. 이러한 소프트웨어 패키지는 yum 명령을 통해 설치할 수 있습니다.

① ipvsadm 설치

다음 명령을 사용하여 ipvsadm 패키지를 설치합니다.

sudo yum install ipvsadm -y

② keepalived 설치

다음 명령을 사용하여 keepalived 패키지를 설치합니다.

sudo yum install keepalived -y

  1. LVS 구성

LVS를 구성하기 전에 몇 가지 기본 개념을 이해해야 합니다.

  • 스케줄러(로드 밸런서): 클라이언트로부터 네트워크 요청을 수신하고 요청을 백엔드 서버로 전달하는 데 사용됩니다.
  • 수신 IP 주소: 클라이언트가 액세스하는 IP 주소입니다.
  • 실제 서버(백엔드 서버): 클라이언트의 네트워크 요청을 처리합니다.

다음은 스케줄러 IP 주소가 192.168.1.1이고 백엔드 서버 IP 주소가 192.168.1.2 및 192.168.1.3이라고 가정한 LVS 구성 예입니다.

① 스케줄러 구성

먼저 스케줄러에 연결 유지 서비스를 설치하고 구성합니다. /etc/keepalived/keepalived.conf 파일을 편집하고 다음 구성을 추가합니다:

! keepalived

global_defs {
router_id LB_Test
}

vrrp_script chk_http_port {
스크립트 "/etc/keepalived/check.sh"
간격 2
}

vrrp_instance VI_1 {
상태 MASTER
인터페이스 eth0
virtual_router_id 50
우선 순위 101
인증 {

   auth_type PASS
   auth_pass 1111
로그인 후 복사

}
virtual_ipaddress {

   192.168.1.100
로그인 후 복사

}
track_script {

   chk_http_port
로그인 후 복사

}
}

그 중에는 vrrp_instance는 가상 라우터의 파라미터를 설정하는 데 사용되며, virtual_router_id는 가상 라우터의 ID를 설정하는 데 사용되며, virtual_ipaddress는 가상 IP 주소를 설정하는 데 사용되며, Priority는 활성-대기 관계를 설정하는 데 사용됩니다. 우선순위가 높을수록.

그런 다음 check.sh라는 스크립트 파일을 생성하여 백엔드 서버가 살아 있는지 확인합니다. 다음 스크립트 내용을 check.sh 파일에 저장합니다:

!/bin/bash

A=ipvsadm -ln | grep -c "Server"
if [ $A -eq 0 ]; then
echo "failed"
killall keepalived
fi

설명: 언제 백엔드 서버를 사용할 수 없으면 스크립트는 연결 유지 서비스를 종료합니다.

다음 명령을 실행하여 구성 파일을 적용합니다.

sudo systemctl restart keepalived

이제 스케줄러 구성이 완료됩니다.

② 백엔드 서버 구성

백엔드 서버에 LVS의 실제 서버를 구성합니다.

Real Server 구성을 추가하려면 다음 명령을 사용하세요.

sudo ipvsadm -A -t 192.168.1.100:80 -s rr

그 중 -A 옵션은 규칙을 추가하는 데 사용되며, -t는 규칙을 설정하는 데 사용됩니다. 수신 IP 주소 및 포트, -s는 스케줄링 규칙을 설정하는 데 사용되며 여기서는 폴링 방법이 사용됩니다.

다음 명령을 사용하여 규칙에 실제 서버를 추가합니다.

sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2 -g
sudo ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.3 -g

그 중 -a 옵션은 Real Server를 규칙에 추가하는 데 사용되며, -r은 백엔드 서버의 IP 주소를 설정하는 데 사용되며, -g는 백엔드 서버의 게이트웨이 모드를 설정하는 데 사용됩니다.

이제 LVS 구성이 완료되었습니다.

3. 네트워크 로드 밸런싱 테스트

LVS 구성을 완료한 후 다음 단계를 통해 네트워크 로드 밸런싱 기능을 테스트할 수 있습니다.

  1. 클라이언트에서 컬 명령을 통해 가상 IP 주소에 액세스합니다.

curl 192.168.1.100

  1. 스케줄러에 의해 처리된 후 요청은 백엔드 서버 중 하나로 전송됩니다.
  2. 백엔드 서버 중 하나에서 간단한 HTTP 서비스 시작:

python -m SimpleHTTPServer 80

  1. 그런 다음 실제 서버의 IP 주소에 액세스:

curl 192.168.1.2

  1. 다시 가상 IP 주소로 보내기 요청은 다른 실제 서버로 전송되어야 합니다.

위 테스트 후 백엔드 서버에 접속 시 요청이 여러 백엔드 서버에 고르게 분산될 수 있다면 네트워크 로드 밸런싱에 성공한 것입니다.

4. 요약

이 기사에서는 네트워크 로드 밸런싱을 위해 Linux를 사용하는 방법을 소개합니다. ipvsadm 및 keepalived 소프트웨어 패키지를 설치하고 스케줄러 및 백엔드 서버의 IP 주소, 포트 및 스케줄링 규칙을 구성하고 마지막으로 네트워크 로드 밸런싱 기능을 테스트합니다. 네트워크 로드 밸런싱은 전체 시스템의 가용성과 성능을 향상시키고 동시성이 높은 환경에서 네트워크 요청을 처리하는 데 도움을 주어 사용자 경험을 향상시킬 수 있습니다.

위 내용은 네트워크 부하 분산을 위해 Linux를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿