Linux 클러스터링에서 복제 성능을 극대화하는 팁 Fusion-io
대부분의 사람들은 클러스터 설정에 대해 생각할 때 대개 둘 이상의 서버와 SAN 또는 다른 유형의 공유 저장 장치를 필요로합니다. SAN은 일반적으로 설정 및 유지 관리에 매우 비용이 많이 들고 복잡합니다. 또한 클러스터 아키텍처에서 기술적으로 단일 장애 지점 (SPOF)을 나타냅니다. 요즘 점점 더 많은 사람들이 번개 빠른 ioDrive를 통해 Fusion-io와 같은 회사로 전환하여 중요한 응용 프로그램을 가속화하고 있습니다. 이러한 저장 장치는 서버 내에 있습니다 (즉, "공유 디스크"가 아닙니다). 따라서 기존의 많은 클러스터링 솔루션이있는 클러스터 디스크로 사용할 수 없습니다. 다행스럽게도 Fusion-io를 사용하여 Linux 클러스터링의 복제 성능을 극대화하는 방법이 있습니다. 공유 저장 장치가없는 경우 장애 조치 클러스터를 구성 할 수있는 솔루션, 즉 "공유되지 않은"클러스터.
전통적 클러스터 | "Shared Nothing"클러스터 |
클러스터 구성의 일부로 데이터 복제를 활용할 때는 충분한 대역폭을 확보하여 디스크에 기록 된 것만큼 빠르게 네트워크를 통해 데이터를 복제 할 수 있어야합니다. 다음은 고속 스토리지가 관련되어있을 때 "공유 안 함"클러스터 구성을 최대한 활용할 수있게 해주는 튜닝 팁입니다.
회로망
- 10Gbps NIC 사용 : Fusion-io의 플래시 기반 저장 장치 (또는 OCZ, LSI 등의 유사한 제품)는 HUNDREDS (750) MB / 초 이상의 속도로 데이터를 쓸 수 있습니다. 1Gbps NIC는 이론상 최대 ~ 125MB / sec의 속도를 낼 수 있기 때문에 ioDrive의 잠재력을 이용하는 모든 사람이 1Gbps 네트워크 연결을 통해 전달할 수있는 것보다 훨씬 빨리 데이터를 쓸 수 있습니다. 실시간 데이터 복제를 용이하게하기 위해 서버간에 충분한 대역폭을 확보하려면 복제 트래픽을 전달하는 데 항상 10Gbps NIC를 사용해야합니다
- 점보 프레임 활성화 : 네트워크 카드와 스위치가이를 지원한다고 가정하면 점보 프레임을 활성화하면 네트워크 처리량을 크게 늘릴 수 있으며 동시에 CPU주기를 줄일 수 있습니다. 점보 프레임을 활성화하려면 다음 구성을 수행하십시오 (예 : RedHat / CentOS / OEL Linux 서버)
- ifconfig <인터페이스 이름> mtu 9000
- / etc / sysconfig / network-scripts / ifcfg- <interface_name> 파일을 편집하고 "MTU = 9000"을 추가하여 재부팅시 변경 사항이 지속되도록하십시오
- 엔드 – 투 – 엔드 점보 프레임 작동을 확인하려면 다음 명령을 실행하십시오. ping -s 8900 -M do <IP-of-other-server>
- NIC의 전송 대기열 길이 변경 :
- / sbin / ifconfig <인터페이스 _ 이름> txqueuelen 10000
- 다시 부팅 할 때마다 설정을 유지하려면 /etc/rc.local에 추가하십시오.
TCP / IP 조정
- NIC의 netdev_max_backlog를 변경하십시오.
- /etc/sysctl.conf에 "net.core.netdev_max_backlog = 100000"을 설정하십시오.
- 복제 성능을 향상시키는 다른 TCP / IP 조정 :
- 참고 :이 값은 예제 값이며 하드웨어 구성에 따라 조정해야 할 수도 있습니다
- /etc/sysctl.conf를 편집하고 다음 매개 변수를 추가하십시오.
- net.core.rmem_default = 16777216
- net.core.wmem_default = 16777216
- net.core.rmem_max = 16777216
- net.core.wmem_max = 16777216
- net.ipv4.tcp_rmem = 4096 87380 16777216
- net.ipv4.tcp_wmem = 4096 65536 16777216
- net.ipv4.tcp_timestamps = 0
- net.ipv4.tcp_sack = 0
- net.core.optmem_max = 16777216
- net.ipv4.tcp_congestion_control = htcp
조정
일반적으로 구현하려는 클러스터링 및 복제 기술에 따라 달라지는 클러스터 구성을 조정해야합니다. 이 예에서는 SIOS Technologies의 Linux 용 SteelEye Protection Suite (일명 LifeKeeper SPS)를 사용하고 있습니다. 사용자는 파이버 채널 SAN, iSCSI, NAS 또는이 기사와 가장 관련이있는 클러스터 노드간에 실시간으로 동기화 / 복제해야하는 로컬 디스크를 비롯하여 모든 백 엔드 저장소 유형을 활용하여 장애 조치 (failover) 클러스터를 구성 할 수 있습니다. SPS for Linux에는 통합 된 블록 레벨 데이터 복제 기능이 포함되어있어 공유 스토리지가 필요없는 클러스터를 쉽게 설정할 수 있습니다.
권장 사항
Fusion-io를 사용하여 Linux 클러스터링의 복제 성능을 극대화하려면 다음을 시도해보십시오. Linux 구성 권장 사항 인 SteelEye Protection Suite (SPS) :
- Fusion-io 드라이브에있는 작은 (~ 100 MB) 디스크 파티션을 할당하여 비트 맵 파일을 배치하십시오. 이 파티션에 파일 시스템을 만들고 마운트합니다 (예 : / bitmap).
- # mount | grep / bitmap
- / dev / fioa1 on / 비트 맵 유형 ext3 (rw)
- 미러를 만들기 전에 / etc / default / LifeKeeper에서 다음 매개 변수를 조정하십시오
- 삽입 : LKDR_CHUNK_SIZE = 4096
- 기본값은 64입니다.
- 편집 : LKDR_SPEED_LIMIT = 1500000
- (기본값은 50000 임)
- LKDR_SPEED_LIMIT는 재 동기화가 취할 최대 대역폭을 지정합니다.이 값은 가능한 한 최대 속도로 재 동기화를 수행 할 수 있도록 충분히 높게 설정해야합니다
- 편집 : LKDR_SPEED_LIMIT_MIN = 200000
- (기본값은 20000 임)
- LKDR_SPEED_LIMIT_MIN은 다른 I / O가 동시에 진행될 때 재 동기화를 허용하는 속도를 지정합니다. 일반적으로 굶주림을 피하려면 드라이브의 최대 쓰기 처리량의 절반 이하로 설정해야합니다 재 동기화가 발생할 때 정상 I / O 활동을 종료합니다.
- 삽입 : LKDR_CHUNK_SIZE = 4096
여기에서 계속해서 거울을 만들고 평소와 같이 클러스터를 구성하십시오. Linux 클러스터링에서 복제 성능 극대화에 관심 Fusion-io를 사용하면 SIOS가 제공 할 수있는 다른 기능을 살펴보십시오. LinuxClustering의 허가를 받아 재현