|
구 분 |
내 용 |
|||
NAME |
lltconfig – 낮은 지연 전송(Low Latency Transport: LLT) 프로토콜 구성 유틸리티 |
|||
SYNOPSIS |
lltconfig -h lltconfig -c [-f file] lltconfig [-v ] [-C clusterid] [-n systemid] [-i low_high] [-x low_high] [-o] lltconfig -t devtag -d device -b ether [-s SAP] [-m mtu] [-l] [-Q] lltconfig -t devtag -d device -b udp [-s port] [-m mtu] -I IPaddr -B bcast [-l] [-Q] lltconfig -t devtag -d device -b udp6 [-s port] [-m mtu] -I IPaddr [-B mcast] [-l] [-Q] lltconfig -t devtag -d device -b rdma -s port [-m mtu] -I IPaddr -B bcast [-l] lltconfig [-u device_tag] lltconfig -U lltconfig -V lltconfig -W lltconfig [-T timer:value] lltconfig [-F limit:value] lltconfig -a list | flush | delete | set [system][device_tag][address] lltconfig -L disable | enable lltconfig -K 0 | 1 | 10 | 2 | 20 lltconfig -E 0 | 1 | 3 lltconfig -A 0 | 1 lltconfig -k enable | disable | status lltconfig -j 0 | 1 | 2 lltconfig -M lltconfig -N |
|||
DESCRIPTION |
lltconfig 유틸리티는 LLT 프로토콜 스택을 초기화하고 구성을 유지한다. 연결되어 있는 네트워크 드라이버(network driver: 예 Ethernet, udp, udp6등)을 통해 LLT 프로토콜을 연결하는 역할을 한다. 또한 수 많은 내부 프로토콜 파라메터를 관리하기도 한다. 시스템 시작 시에, lltconfig는 /etc/llttab 파일을 읽어 로컬 시스템 ID 및 네트워크 디바이스, 연결한 드라이버, 동일한 node 를 갖는 다른 노드가 있는 확인한 다음, 파라메터 정보를 LLT에 설정하고 실행 중인 프로토콜을 시작한다. 아무런 옵션 없이 lltconfig 명령어의 실행은 LLT 프로토콜의 실행 상태를 보고한다. lltconfig –c 명령어는 클러스터에서 중복하는 노드를 확인하기 위해 각 링크에서 5초 동안 수신한다. 중복 노드를 발견하면 에러 메시지를 출력하고 종료한다. |
|||
OPTIONS |
-a list | flush | delete | set [system][device_tag][address] |
|||
|
특정 네트워크 링크의 특정 시스템과 관련된 MAC 주소를 표시하거나 조작한다. list 주소 테이블 표시 flush 자동으로 학습된 모든 주소를 삭제 delete systemid와 device_tag에 의해 지정된 하나의 주소를 삭제 set device_tag에 의해 지정된 링크에 systemid를 갖는 시스템에 대한 하나의 주소를 추가 adress 링크 유형에 따라 콜론(:) 또는 점(.)으로 구분된 16진수로 구성 |
|||
-b link_type |
필요한 링크 유형을 선택한다. 링크 유형에 지원되는 값은 ether, udp, 및 udp6이다. Linux 버전에서 선택하는 링크 유형은 rdma도 지원된다. |
|||
-B bcast |
링크 유형 udp 및 rdma에 대한 브로드캐스트 주소(broadcast address)를 지정한다. 이 옵션은 링크 유형 udp6에 대해서는 멀티캐스트 주소(muticast address)를 지정하기 위해 사용될 수 있다. |
|||
-C |
clusterid를 설정한다. 이 옵션은 둘 이상의 클러스터가 LLT에서 사용 중인 네트워크 하드웨어를 공유하는 경우에만 필요하다-동일한 헛빝을 사용하는 경우이다. 예를 들어, 2개 이상의 클러스터가 동일한 네트워크 더미 스위치를 통해 헛빝을 같이 사용하는 경우이다-. 이러한 경우에, 각 클러스터는 자체 clusterid(또는 고유 SAP)를 필요하므로 클러스터가 서로 간섭하지 않는다. 서로 다른 cluster id를 갖는 시스템은 서로 통신할 수 없으며, 기본 cluster id는 0이다. |
|||
-c |
/etc/llttab 파일에서 LLT 프로토콜을 구성한다. |
|||
-d device |
LLT 아래에 네트워크 링크를 구성한다. device는 네트워크 디바이스의 경로이다. ether 링크 유형의 경우, 콜론(:) 또는 LLT에 연결하기 위해 사용되는 단위(unit) 또는 PPA를 지정하는 정수에 따른다. Linux의 경우, device는 2가지 방법으로 지정될 수 있다 eth0, eth1 등과 같은 인터페이스 이름으로 지정할 수 있거나 eth-xx:xx:xx:xx:xx:xx와 같이 eth-<mac-address>로 지정할 수 있다. rdma 링크 유형의 경우, device_name은 udp이다. Linux에서 device는 udp 또는 udp6로 지정될 수 있다. |
|||
-f |
/etc/llttab 대신에 대체 구성 파일을 지정한다. 이 옵션은 –c 옵션에 함께 사용하는 경우에만 유효하다. |
|||
-F query | limit:value |
||||
|
흐름 제어 한계(flow control limits)의 값을 조회하거나 변경한다. limit 필드는 다음과 같다. highwater: LLT가 클라이언트를 제어하는 흐름 없이 전송할 최대 패킷 수이다. 노드 별 전송 대기열에 있는 패킷 수가 highwater에 도달하면 LLT는 클라이언트를 제어하는 흐름에 의해 해당 노드에 대한 패킷 전송을 중지한다. lowwater: LLT가 클라이언트를 흐름 제어 할 때, 전송 대기열에 있는 패킷 수가 저수준으로 떨어질 때까지 전송을 다시 시작하지 않는다. rporthighwater: 포트의 수신 대기열에 rporthighwater 의 패킷 수가 있는 경우 LLT는 해당 포트에서 더 이상 패킷을 수락하지 않습니다. 이러한 패킷은 삭제되며 보낸 사람이 다시 전송한다. rportlowwater: 포트의 수신 대기열이 가득 차면 LLT는 패킷 수가 rportlowwater 까지 떨어질 때까지 대기한다. 이 시점에서 LLT는 해당 포트에서 패킷 수신을 다시 시작한다. window: LLT가 전송할 ACK되지 않은 패킷의 최대 수이다. ackval: LLT는 다음 아웃 바운드 데이터 패킷의 ACK 패킷을 보낸 노드에 피기 백 (piggyback)하여 패킷의 승인을 보냅니다. ACK 패킷을 피기 백 (piggyback) 할 데이터 패킷이 없으면 LLT는 확실한 ACK를 보내기 전에 ackval 패킷 수를 기다린다. 보낸 사람에게. sws: 이것은 실리 윈도우 신드롬(Silly window Syndrome)[1] 를 피하기 위해 사용된다. linkburst: LLT는 모든 구성된 링크에서 패킷을 라운드 로빈 방식으로 보낸다. linkburst 는 다음 링크를 선택하기 전에 링크에서 보낸 백투백 패킷 수이다. linkburst가 0이면 특정 대상 (노드, 포트)의 모든 패킷이 특정 링크로 전송된다. lltconfig -F query사용은 현재 흐름 제어 설정을 표시한다. Value는 패킷의 개수를 지정한다. |
|||
-h |
도움말 메시지 표시 |
|||
-i low-high |
클러스터에 참여한 유효한 시스템 id의 low-high 범위를 설정한다. 이 명령은 존재하지 않은 시스템과의 통신을 막기 위해 애플리케이션이 사용할 수 있는 시스템 ID의 한계를 변경한다. 기본값은 0-nn이다. nn은 커널 구성에 따라 결정되는 최대 지원 systemid이다. |
|||
-I IPaddr |
IP 주소를 지정한다. 이 옵션은 링크 유형이 udp 또는 udp6일 경우에만 유효하다. |
|||
-l |
-d 옵션하고만 함께 사용되는 이 옵션은 네트워크 링크가 헛빝 전송에 사용되더라도 데이터를 전송하는 마지막 수단으로만 사용되도록 지정한다. |
|||
-m mtu |
네트워크 링크에서 패킷에 사용할 최대 전송 단위를 지정한다. 이 수는 모든 네트워크 링크의 가장 낮은 MTU보다 작거나 같아야 한다. 이 수보다 큰 크기를 갖는 패킷은 전송 전에 LLT에 의해 적절히 단편화(fragment)된다. |
|||
-n systemid |
systemid를 설정한다. Systemid는 유효한 systemid의 범위를 정수로 할 수 있다. /etc/llthosts를 통해 systemid로 변환될 수 있는 심볼릭 이름일 수 있으며 또는 이 경우, 파일의 첫 단어가 /etc/llthosts르 통해 systemid로 심볼릭 이름 및 변환되는 것으로 사용되는 경우 슬래쉬(/)로 시작하는 파일이름 일 수도 있다. LLT가 다른 시스템에 동일한 systemid를 사용하는 다른 시스템 구성을 탐지할 경우, 시스템이 리부트 될 때까지 프로토콜을 비활성화 한다. |
|||
-o |
플래그를 재정의한다. 겹쳐 쓰기 위해 Systemid와 같은 값을 지정한다. 또한 중복 노드가 탐지되더라도 강제적으로 LLT가 링크를 구성할 수 있다. |
|||
-Q |
“숨김(hidden)”으로 링크를 구성한다. “숨김” 링크는 LLT 클라이언트에는 표시되지 않으며, 클러스터 멤버쉽 계산에 고려되지 않는다. LLT 특정 정보를 피어 노드와 교환하기 위해 LLT에 의해서만 사용된다. 이 유형의 링크는 LLT “링크 장애의 빠른 감지” 기능을 활성화 할 때 필요하다. |
|||
-s sap |
ether 링크 유형에 대한 네트워크 링크에 바인드(bind)할 SAP를 지정한다. 이 옵션은 udp 및 udp6 링크 유형에 대한 포트를 지정하기 위해 사용될 수 있다. |
|||
-T timer:value |
프로토콜 타이머의 값을 쿼리하거나 변경한다. 유효한 타이머(timer)필드는 다음과 같다. heartbeat: 모든 heartbeat 타이머 간격 후에 헛빝 패킷을 피어 노드에 반복적으로 보낸다. 기본값은 50이다. heartbeatlo: 모든 heartbeatlo타이머 간격 후에 헛빝 패킷을 피어 노드에 반복적으로 보낸다 .기본값은 100이다. peertrouble: 이 타이머 간격 동안 해당 링크에서 패킷을 수신하지 않으면 피어 노드의 링크를 "문제가 있음(troubled)"으로 표시한다 링크가 "문제가 있음(troubled)"으로 표시되면 LLT는 사용 가능한 활성 링크가 하나 이상 있을 때까지 해당 링크에 대한 데이터를 보내지 않는다. 기본값은 200입니다. peertroublelo : 이 타이머 간격 동안 해당 링크에서 패킷을 수신하지 않으면 피어 노드의 로우 링크를 "문제가 있음(troubled)"으로 표시한다. 링크가 "문제가 있음(troubled)"으로 표시되면 LLT는 링크가 사용 가능할 때까지 링크에 대한 데이터를 보내지 않는다. 기본값은 400입니다. peerinact: 이 타이머 간격 동안 해당 링크에서 패킷을 수신하지 않으면 피어 노드의 링크를 "비활성(inactive)"으로 표시한다. 링크가 "비활성(inactive)"으로 표시되면 LLT는 해당 링크에 대한 어떠한 데이터도 보내지 않는다. 기본값은 AIX플랫폼에서는 1의 경우 3200이고 다른 플랫폼의 경우 1600입니다. 이 타이머 값은 항상 peertrouble 타이머 값 보다 커야 한다. rpeerinact: 노드가 이 타이머 간격 동안 해당 링크에서 패킷을 수신하지 않으면 RDMA 링크의 RDMA 채널을 "비활성(inactive)"으로 표시한다. RDMA 채널이 "비활성 (inactive)"로 표시되면 LLT는 해당 링크의 RDMA 채널에 아무런 데이터도 보내지 않지만 peerinact가 만료 될 때까지 해당 링크의 비 RDMA 채널을 통해 데이터를 계속 전송할 수 있다. lltstat -nvv -r 명령을 사용하여 RDMA 링크의 RDMA 채널 상태를 볼 수 있다. 이 속성의 기본값은 700이다. 이 타이머 값은 항상 peertrouble 타이머 값보다 크고 peerinact 값 보다 작아야 한다. 이 속성은 선택된 Linux 버전에서만 지원된다. timetoreqhb: 이 타이머 간격 동안 해당 노드에서 이 링크로 패킷이 들어오지 않으면 피어 노드에서이 링크에 대해 헛빝을 명시적으로 요청한다. 그 값은 peerinact 타이머 값보다 200 낮다(적다). 이 타이머는 peerinact 타이머가 설정 될 때마다 peeriact-200으로 설정된다. 따라서 기본값은 3200 - 200 = 3000이고(AIX) 다른 플랫폼에서는 1600 - 200 = 1400입니다. peerinacct가 200이하로 설정하면 이 타이머는 0으로 설정된다. 이 타이머가 0이면, 이의 요청 헛빝 메커니즘이 비활성화된다. 이 메카니즘이 사용되면, 링크는 peerinact 시간 전일지라도 "비활성(inactive)"으로 선언 될 수 있다. 따라서 이 메커니즘은 피어 노드의 사망 탐지 시간(death detection time)을 줄이기 위해 사용될 수 있다. reqhbtime: 두 개의 연속적인 특정 헛빝 요청 간의 시간 간격. 특정 헛빝 요청에 대한 자세한 정보는 timetoreqhb 파라메터를 참조하기 바랍니다. 기본값은 40이다. timetosendhb: 타이머가 일정한 간격으로 실행되지 않을 때 노드가 작동하도록 헛빝을 보낸다. 이 옵션은 타이머가 실행되지 않을 때 헛빝을 보내기 전에 대기 할 시간을 지정한다. 값을 0으로 설정하면 메커니즘이 비활성화되며, 기본값은 200이다. sendhbcap: 이 옵션은 컨텍스트 헛빝이 중단 될 캡(cap)을 지정한다. 기본값은 3 분이다. oos: 수신 된 패킷이 이 타이머 간격 동안 순차적으로 남아 있으면 보낸 사람에게 NAK를 보낸다다. 기본값은 10이다. retrans: 이 타이머 간격에 대한 확인 응답을 받지 못하면 패킷을 다시 전송한다. 기본값은 10이다. service: 모든 service타이머 간격 후에 LLT 서비스 루틴 (LLT 클라이언트에 메시지를 전달)을 호출 한다. 기본값은 100이다. arp: 이 타이머 간격 후에 피어 노드의 저장된 MAC 주소를 만료시킨다. 기본값은 0이며, 이는 MAC 주소가 절대로 만료되지 않음을 의미한다. arpreq: 이 타이머가 만료되면 클러스터의 다른 피어 노드를 감지하기 위해 arp 요청을 보낸다. 기본값은 3000이다. linkstable: 이 옵션은 로컬 노드의 링크에 대해 링크다운 이벤트를 처리하기 전에 대기하는 시간을 지정한다. LLT "링크 장애 빠른 검색"기능이 활성화되면 LLT는 OS에서 링크다운 이벤트를 수신한다. 기본값은 200이다. 현재 타이머 설정을 표시 하려면 lltconfig -T query 를 사용한다. . value은 1 / 100th 초 단위로 지정되며 query 옵션 에는 사용되지 않는다. |
|||
-t device_tag |
-d, -L 옵션과 함께 사용될 경우, 이 옵션은 이어지는 후속 명령어에 특정 링크(link)를 식별하는데 사용되는 태그를 지정하며 lltstat(1M)에 의해 표시된다. |
|||
-u device_tag |
device_tag에 의해 나타나는 네트워크 디바이스에서 LLT 프로토콜 연결을 끊는다(unlink). LLT 프로토콜 연결을 끊기 전에, LLT peerinat 시간에 대해 –L 옵션을 사용하여 연결(link)를 비활성화 한다. |
|||
-k enable | disable | status |
||||
|
LLT 커널 튜너블(tunables) 로깅의 모드를 출력 또는 조작한다. 사용자가 LLT 커널 튜너블에 변경을 초기화하는 것은 튜너블의 로깅모드 기반에서 dmesg “display message” 또는 “driver message”를 의미하며, 대부분의 리눅스와 유닉스 기반 운영체제에 있는 명령어로 커널의 메시지 버퍼를 출력한다. 버퍼에 기록된다(logged). 로깅 모드는 로깅을 설정하기 위해 ENABLED 또는 로깅을 비활성화하기 위해 DISABLED를 설정할 수 있다. 이 옵션은 enable은 LLT 튜너블 변경이 초기화하는 사용자의 로깅을 활성화하고, disable은 LLT 튜너블 변경을 초기화하는 사용자의 로깅을 비활성화 한다. 그리고, status는 현재 로깅 모드를 출력한다. |
|||
-j 0 | 1 | 2 |
LLT 링크 장애 감지 레벨 설정 0(default) 설정: 링크 장애는 LLT “peerinact” 시간 간격 이후에 감지 및 처리된다. 1 설정: LLT의 “링크 장애의 빠른 감지” 기능을 활성화하고 링크 장애는 즉시 감지되어 LLT “linkstable” 시간 후 처리된다. 이를 위해 추가 링크를 LLT “숨김(hidden)” 링크로 구성해야 한다. LLT “숨김(hidden)” 링크로서 공용 링크(public link)를 구성할 수 있다. “숨김(hidden)” 링크는 LLT 내부 용도로만 사용되며 LLT 클라이언트에게는 표시되지 않는다. 2 설정: 옵션 1과 동일한 기능을 제공하지만 크로스-오버 케이블(cross-over cable)을 통해 연결된 2노드 클러스터가 있는 경우에만 이 옵션을 사용해야 한다(물리적 연결 관련 스위치에는 참여하지 않음). 이러한 경우에 옵션 1에서 설명한 것처럼 추가 LLT “숨김(hidden)” 링크를 구성할 필요가 있다. 현재 구성 값을 출력하기 위해 lltstat -c 명령어를 사용한다. 위의 옵션 1과 2 기능은 Solaris 및 HP-UX플랫폼에서만 사용할 수 있다. |
|||
-U |
모든 네트워크 디바이스에서 LLT 프로토콜 연결 해제(unlink) |
|||
-V |
LLT 현재 및 최대 지원되는 프로토콜 버전 정보를 출력 |
|||
-M |
LLT 드라이버 버전 정보 출력 |
|||
-N |
네트워크에서 사용되는 모든 cluster id 나열 이 옵션은 LLT가 구성할 경우에는 사용될 수 없다. 이 옵션은 원격 클러스터에서 LLT 브로드캐스트 메시지 빈도가 감소하거나 또는 LLT 브로드캐스트 기능이 비활성화 된 경우 모든 클러스터 ID(cluster id)를 나열하지 않을 수 있다. |
|||
-W |
LLT 지원, 브로드캐스트(broadcast) 및 현재 프로토콜 버전 정보를 출력 |
|||
-v |
자세한 출력 모드 설정(verbose) |
|||
-x low-high |
클러스터에 참여에 유효하지 않는 systemid의 low-high의 범위 설정한다. 이 옵션은 존재하지 않는 시스템과의 통신 시도를 방지하기 위해 애플리케이션이 사용할 수 있는 systemid의 한계를 변경한다. |
|||
-L disable | enable |
||||
|
특정 LLT 링크를 비활성(disable) 또는 활성(enable)시킨다. 비활성일 때 링크는 LLT 트래픽을 발신(send) 또는 수신(recv)하지 않는다. 링크는 LLT 프로토콜을 연결해제(unlink)하기 전에 비활성화되어야 한다. |
|||
-K 0/1/10/2/20 |
체크썸 모드 설정 1 설정: LLT는 패킷 손상을 방지하기 위해 피어(peer)에 보내는 각 패킷을 체크썸한다. NIC 지원을 따를 경우 LLT는 하드웨어로 체크썸 계산을 항상 오프로드(offload)분담:작업을 다른 곳이나 다른 컴퓨터에 전가하는 것 할 것이다. 수신기(receiver)에서 체크썸 확인이 실패할 경우 LLT는 해당 패킷을 삭제하여 보낸 사람이 패킷을 재전송하게 한다. 10 설정: LLT가 소프트웨어에서 체크썸을 엄격하게 수행하고 체크썸을 수행할 수 있는 경우에도 NIC로 체크썸을 오프로드 하지 않는다는 점을 제외하고는 1로 설정하는 것과 동일하다. 2 설정: 피어(peer)-클라이언트에 전달하기 전에 클라이언트가 제출한 전체 데이터 버퍼를 피어가 확인하도록 체크썸한다. 수신기에서 체크썸 확인이 실패하면 LLT가 시스템을 패닉(panic)시킨다. 이는 크래시 덤프(crash dump)에서 메모리 손상 분석에 도움을 주기 위해 의도적으로 수행하는 것이다. 20 설정: LLT가 소프트웨어에서 체크썸을 엄격하게 수행하고 체크썸을 수행할 수 있는 경우에도 NIC로 체크썸을 오프로드 하지 않는다는 점을 제외하고는 2로 설정하는 것과 동일하다. 레벨 2와 레벨 20 체크썸은 지원 센터의 조언에 따라 메모리 손상을 진단할 때에만 사용되어야 하며, 이후에 시스템은 패닉(panic)을 일으킬 수 있다. LLT는 신뢰할 수 있는 전송이며 패킷 정확도를 보장해야 하므로 기본 값은 10(체크썸) 이다. 레벨 10체크썸은 사설 네트워크가 안정적으로 인정될 경우 비활성화 될 수 있다. 체크썸을 수행하는데 필요한 CPU 주기로 인해 성능이 약간 향상 될 수 있다. 현재 체크썸 오프로드는 Linux에서만 구현되며 패킷 전송에만 적용된다. |
|||
-E 0/1/3 |
추적(trace) 레벨 설정 1(default) 설정: LLT는 내부 순환 버퍼(trace buffer)에서 모든 이벤트(상향 호출, 흐름-제어, 링크 및 연결 상태 변경)을 추적한다. 3 설정: LLT는 수신 및 전송되는 패킷도 추적한다. 이것은 오버헤드(overhead)가 있어 성능에 영향을 줄 수 있다. 따라서 디버깅할 경우에만 사용해야 한다. 0 설정: 추적을 비활성화 한다. |
|||
-A 0/1 |
엄격한 원본 주소 확인을 사용한다. 1 설정: LLT는 들어오는 패킷의 원본 주소를 확인하고 알 수 없는 원본의 패킷을 드롭(drop)한다. 0 설정: 이의 검사가 수행되지 않는다. 이 옵션은 UDP 링크가 구성되어 있을 경우에만 사용할 수 있으며, 이더넷의 경우 동작하지 않는다, |
|||
ENVIRONEMNT VARIABLES |
LLT_LINK_TIMEOUT lltconfig는 클러스터에서 다른 노드가 동일 노드 id(node id)를 소유할 경우 이를 감지하기 위해 각 링크에서 5초 동안 리슨(listen)한다. 기본 값을 변경하기 위해, 초 단위의 값으로 이의 환경 변수를 설정한다. |
|||
DISCLAIMER |
LLT와 GAB을 VCS가 아닌 다른 클러스터에서 구성할 경우, LLT 및 GAB에서 클러스터 관리자의 보충 설명 문서에 따라 구성하도록 한다. -f 옵션은 VCS 환경에서만 적용할 수 있다. |
|||
FILES |
/etc/llttab |
|||
SEE ALSO |
lltstat(1M), llttab(4) |
|||
[1] Silly Windows Syndrome
TCP 흐름 제어가 제대로 구현되지 않아 컴퓨터 네트워킹 에 문제가 있는 경우이다. 송신 애플리케이션 프로그램이 데이터를 느리게 생성하거나, 수신 애플리케이션 프로그램이 데이터를 느리게 소비하거나, 또는 둘 모두를 할 때, 슬라이딩 윈도우 동작에 중대한 문제가 발생할 수 있다. 경우 서버에서 이 문제에 들어오는 모든 데이터를 처리 할 수 없는, 그것을 요청하는 고객 들이 한 번에 (TCP의 창 설정에서 전송되는 데이터의 양 감소 패킷 ), 서버가 계속해서 모든 들어오는 데이터를 처리 할 수 없으면 창이 작아지고 작아지며 때로는 전송 된 데이터가 패킷 헤더보다 작아서 데이터 전송이 매우 비효율적이게 된다.
보다 자세한 설명은 포털 사이트에서 검색해 보시면 상세 설명 자료를 확인하실 수 있을 것입니다.