> 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).

# 네트워크 설정

본 장에서는 ZetaData의 DB 노드와 Storage 노드 네트워크 구성 방법을 설명합니다.

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

ZetaData는 DB 노드와 Storage 노드 간 빠른 네트워크 통신을 위해 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 주소 구성도](https://content.gitbook.com/content/C4CM2cGYECmozpu6EgSG/blobs/YUkbdxExNIi4hi1Johdo/2.png)

## **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
```

Red Hat 계열(RHEL, CentOS, Fedora)

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

아래는 Red Hat 7, 8, 9에서 멜라녹스(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 기능을 지원하지 않는 스위치에서는 OpenSM 서비스를 실행합니다.

```
$ 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 %}
