> For the complete documentation index, see [llms.txt](https://docs.tibero.com/zetadata/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tibero.com/zetadata/network-configuration.md).

# 네트워크 설정

## 개요 <a href="#bookmark17" id="bookmark17"></a>

ZetaData는 DB 노드와 Storage 노드 간의 빠른 네트워크 통신을 위해서 InfiniBand를 사용합니다. 아래의 과정으로 InfiniBand를 사용해서 ZetaData 네트워크를 설정합니다.

1. InfiniBand 드라이버 설치
2. InfiniBand 드라이버 동작 확인
3. 커널 파라미터 설정
4. 네트워크 구성 (각 InfiniBand 제조사의 네트워크 구성 메뉴얼을 참고하여 구성합니다.)

{% hint style="info" %}
**참고**

InfiniBand가 없거나 사용에 문제가 있는 경우 RDMA 프로토콜 대신 TCP 프로토콜을 사용하도록 설정할 수 있습니다.  방법은 “초기화 파라미터”의 **SSVR\_USE\_TCP** 파라미터를 참고합니다.
{% endhint %}

아래 그림은 앞으로 예에서 사용할 ZetaData 노드의 InfiniBand용 IP 주소 구성입니다.

![그림 1.  ZetaData 노드 InfiniBand IP address 구성도](/files/1T6UpT2KgAwSb2eRv6P1)

## **1. InfiniBand** 드라이버 설치

InfiniBand를 사용하기 위해서는 OS에 맞는 적합한 드라이버와 라이브러리를 설치해야 합니다.

먼저 각 OS 별로 적합한 명령어를 통해 해당하는 라이브러리를 설치합니다.

아래는 OS별 라이브러리 설치 예입니다.

Ubuntu

```sql
$ sudo apt-cache search libibverb
```

위 명령어로 출력된 'Development files for the libibverbs library' package를 설치합니다.

```sql
$ sudo apt-get install libibverbs-dev
```

RedHat 계열 (RHEL, CentOS, Fedora)

```sql
$ yum install libibverbs-devel libibverbs-devel-static
```

아래는 RedHat 7, 8, 9 OS 위에 멜라녹스(Mellanox)사에서 제공한 InfiniBand 드라이버를 설치하는 예시입니다.

1\. 멜라녹스 드라이버를 설치합니다.

```sql
$ ./mlnxofedinstall
```

2. InfiniBand용 네트워크 설정 파일을 생성합니다. 아래는 DB 노드 0번에서의 설정 파일 예입니다.

```
$ echo "CONNECTED_MODE=yes
> TYPE=InfiniBand
> BOOTPROTO=none
> DEFROUTE=yes
> #IPV4_FAILURE_FATAL=no
> #IPV6INIT=yes
> #IPV6_AUTOCONF=yes
> #IPV6_DEFROUTE=yes
> #IPV6_FAILURE_FATAL=no
> NAME=ib0
> #UUID=6842318b-35d2-475a-8ae2-b3f9ec6b787a
> DEVICE=ib0
> ONBOOT=yes
> IPADDR=10.10.10.11
> NETMASK=255.255.255.0
> #PREFIX=32
> #IPV6_PEERDNS=yes
> #IPV6_PEERROUTES=yes" > /etc/sysconfig/network-scripts/ifcfg-ib0
```

3. subnet manager 기능을 지원하지 않는 스위치의 경우에 opensmd 서비스를 실행합니다.

```
$ systemctl enable opensmd.service
$ service opensmd start
```

4. 서버를 재부팅합니다.

## **2. InfiniBand** 드라이버 동작 확인

아래는 멜라녹스사에서 제공하는 InfiniBand 드라이버의 동작을 확인하는 예입니다.

#### DB 노드 0번

```sql
$ ip addr show ib0
8: ib0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65520 qdisc pfifo_fast \
state UP qlen 1024
link/infiniband 80:00:00:2c:fe:80:00:00:00:00:00:00:50:65:f3:ff:ff:88:81:d0 \
brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
inet 10.10.10.11/24 brd 10.10.10.255 scope global ib0
valid_lft forever preferred_lft forever
inet6 fe80::5265:f3ff:ff88:81d0/64 scope link
valid_lft forever preferred_lft forever
$ ibv_rc_pingpong
local address: LID 0x0006, QPN 0x008382, PSN 0xc85390, GID ::
remote address: LID 0x0002, QPN 0x02e388, PSN 0xb0671b, GID ::
8192000 bytes in 0.01 seconds = 10726.02 Mbit/sec
1000 iters in 0.01 seconds = 6.11 usec/iter
```

#### DB 노드 1번

```sql
$ ip addr show ib0
8: ib0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65520 qdisc pfifo_fast \
state UP qlen 1024
link/infiniband 80:00:00:2c:fe:80:00:00:00:00:00:00:50:65:f3:ff:ff:88:71:40 \
brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
inet 10.10.10.12/24 brd 10.10.10.255 scope global ib0
valid_lft forever preferred_lft forever
inet6 fe80::5265:f3ff:ff88:7140/64 scope link
valid_lft forever preferred_lft forever
$ ibv_rc_pingpong 10.10.10.11
local address: LID 0x0002, QPN 0x02e388, PSN 0xb0671b, GID ::
remote address: LID 0x0006, QPN 0x008382, PSN 0xc85390, GID ::
8192000 bytes in 0.00 seconds = 13317.62 Mbit/sec
1000 iters in 0.00 seconds = 4.92 usec/iter
```

{% hint style="info" %}
**참고**

위 예에서는 **ibv\_rc\_pingpong** 명령어로 DB 노드 간의 테스트만 진행하였으나, SSVR 노드를 포함한 모든 노드에서 각 ZetaData 노드로의 InfiniBand 드라이버 동작 테스트를 진행하는 것을 권장합니다.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.tibero.com/zetadata/network-configuration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
