병렬 파일 시스템 설정 가이드
ECI에서 병렬 파일 시스템을 VAST 로 제공 받을 때 가상 머신에서 병렬 파일 시스템을 마운트하는 방법을 안내합니다.
사전 작업 및 정보 확인
- ECI 포탈에서 병렬 파일 시스템을 생 성합니다.
- 생성한 병렬 파일 시스템에 가상 머신을 추가합니다.
- 가상 머신을 실행합니다.

위와 같이 병렬파일 시스템 설정 시 상세 정보 중 다음 항목을 확인합니다.
VIP 주소 (Virtual IP)
- 병렬 파일 시스템 서버에 접근하기 위한 IP 대역
- 일반적으로 1~8개의 연속된 IP 제공
- 예시:
10.121.255.247-10.121.255.254
가상 함수 IP (VF IP)
- VM이 병렬 파일 시스템에 접근할 때 사용하는 전용 IP
- 보통 1~2개의 연속된 IP 제공
- 예시:
vm-000의 가상함수 IP는10.121.0.1/16,10.121.0.2/16
1 단계 : 병렬 파일 시스템 전용 네트워크 설정
병렬 파일 시스템에 추가된 가상 머신에는 병렬 파일 시스템과 통신하기 위한 전용 네트워크 인터페이스가 별도로 제공됩니다.
해당 전용 네트워크 인터페이스는
최상의 I/O 성능을 보장하기 위해 서버의 물리 네트워크 인터페이스가 Passthrough 형태로 제공되며,
일반적으로 링크 장애에 대비하여 두 개의 인터페이스가 함께 제공됩니다.
1-1. 전용 네트워크 인터페이스 확인
ip a으로 전용 네트워크 인터페이스 조회가 가능하고,
다음 기준으로 확인합니다.
- 기본 IP 주소가 설정되어 있지 않은 인터페이스
- 일반적으로 인터페이스 이름은
enp*형태 - ⚠️
ib*로 시작하는 인터페이스는 InfiniBand(IPoIB) 이므로 대상이 아님 - 아래 예시 전용 네트워크 인터페이스 :
enp0s12,enp0s13
user@vm-000:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8950 qdisc fq_codel state UP group default qlen 1000
link/ether 02:00:98:4f:16:f3 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.21/24 brd 192.168.0.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::98ff:fe4f:16f3/64 scope link
valid_lft forever preferred_lft forever
3: enp0s12: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 04:32:01:3e:c0:60 brd ff:ff:ff:ff:ff:ff
4: enp0s13: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 04:32:01:3e:c0:61 brd ff:ff:ff:ff:ff:ff
5: ibp5s0: <BROADCAST,MULTICAST> mtu 4092 qdisc noop state DOWN group default qlen 1000
link/infiniband 00:00:10:48:fe:80:00:00:00:00:00:00:7c:8c:09:03:00:b6:b2:ea \
brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
1-2. Bonding 인터페이스 생성
아래와 같이 본딩(Bonding) 인터페이스를 생성하여 링크 장애가 발생하더라도 병렬 파일 시스템 사용에 문제가 없도록 설정합니다.
- 본딩 인터페이스에 포함할 네트워크 인터페이스 이름은
앞 단계에서 확인한
enp0s12,enp0s13을 지정합니다. - 본딩 인터페이스에는 가상 머신에 할당된 가상 함수 IP(VF IP) 를 설정합니다.
가상 함수 IP가 여러 개 할당된 경우, 첫 번째 IP를 사용합니다. - 아래 예시에서
vm-000가상 머신 기준으로 가상 함수 IP는10.121.0.1/16,10.121.0.2/16가 할당되어 있으며,
이 중 첫 번째 IP인10.121.0.1/16를 본딩 인터페이스에 사용합니다.
sudo tee /etc/netplan/60-pfs-net.yaml >/dev/null <<'EOF'
network:
version: 2
ethernets:
enp0s12:
mtu: 8950
enp0s13:
mtu: 8950
bonds:
bond.pfs:
addresses:
- "10.121.0.1/16"
interfaces:
- enp0s12
- enp0s13
parameters:
mode: balance-rr
mii-monitor-interval: 100
mtu: 8950
EOF
sudo chmod 600 /etc/netplan/60-pfs-net.yaml
sudo netplan apply
⚠️ 전용 네트워크 설정 시 주의사항 (bond 인터페이스 관련)
현재 ECI 가상 머신 초기화 과정의 제약으로 인해, 가상 머신을 최초 실행하기 이전에 병렬 파일 시스템에 VM이 추가된 경우
네트워크 설정이 잘못 생성되는 사례가 간헐적으로 발생할 수 있습니다.
예시 1. ens3, ens4 인터페이스가 생성되지 않은 경우
- 실제로
ens3와ens4가 MAC 주소의 불일치로 생성되지 않음 - 이로 인해
bond.xxxx인터페이스가 생성되지 않음
user@test-vm:/home/user# sudo cat /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
ens1:
match:
macaddress: "02:00:2a:33:ce:53"
addresses:
- "192.168.0.21/24"
nameservers:
addresses:
- 103.156.22.253
- 1.1.1.1
mtu: 8950
routes:
- to: "default"
via: "192.168.0.1"
ens3:
match:
macaddress: "12:22:1e:11:d2:2c"
mtu: 8950
ens4:
match:
macaddress: "a6:d1:c1:d7:d0:cb"
mtu: 8950
bonds:
bond.2560:
addresses:
- "10.121.0.51/16"
interfaces:
- ens3
- ens4
parameters:
mode: "balance-rr"
mii-monitor-interval: "100"
조치 방법
/etc/netplan/50-cloud-init.yaml파일을 엽니다.- 첫 번째 인터페이스(예:
ens1)를 제외한 항목을 제거 후 netplan을 적용합니다.
user@test-vm:/home/user# sudo cat /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
ens1:
match:
macaddress: "02:00:2a:33:ce:53"
addresses:
- "192.168.0.21/24"
nameservers:
addresses:
- 103.156.22.253
- 1.1.1.1
mtu: 8950
routes:
- to: "default"
via: "192.168.0.1"
user@test-vm:/home/user# netplan apply
예시 2. 불필요한 bond.xxxx 인터페이스가 남아 있는 경우
ip a출력 결과에bond.pfs외의bond.xxxx인터페이스가 존재함- 해당 인터페이스로 인해 PFS 네트워크 통신이 정상 동작하지 않을 수 있음
조치 방법
bond.pfs를 제외한bond.xxxx형태의 인터페이스를 제거합니다. (※xxxx는 숫자)
user@test-vm:/home/user# netplan apply
root@tl-vm-018:/home/trillion-techstaff# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8950 qdisc fq_codel state UP group default qlen 1000
link/ether 02:00:2a:33:ce:53 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.21/24 brd 192.168.0.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::2aff:fe33:ce53/64 scope link
valid_lft forever preferred_lft forever
13: bond.2560: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 42:fd:e6:76:ee:b3 brd ff:ff:ff:ff:ff:ff
inet 10.121.0.51/16 brd 10.121.255.255 scope global bond.2560
valid_lft forever preferred_lft forever
user@test-vm:/home/user# ip link del bond.2560
2 단계 : vastnfs 드라이버 설치
병렬 파일 시스템(VAST)은 vastnfs 드라이버를 사용합니다.
2-1. vastnfs 드라이버 상태 확인
- 명령어가 정상적으로 실행되고 상태가 정상인 경우, 3 단계로 진행합니다.
- 명령어가 정상적으로 동작하지 않은 경우, 2-3을 진행합니다.
- vastnfs 드라이버는 설치되어 있으나 상태가 비정상인 경우, 2-2를 확인합니다.
vastnfs-ctl status
2-2. 기존 설치 여부 확인
- 이미 vastnfs 드라이버가 설치되어있다면 생략 가능합니다.
- vastnfs 드라이버가 정상 설치되어있는지 확인하는 방법은 다음과 같습니다.
- 두 명령어에서 출력되는 값이 동일해야 합니다 (값 자체는 아래의 예시와 다를 수 있습니다)
cat /sys/module/sunrpc/srcversion
4CC8389C7889F82F5A59269
modinfo sunrpc | grep srcversion
srcversion: 4CC8389C7889F82F5A59269
2-3. vastnfs 드라이버 설치 (필요 시)
- vastnfs 드라이버가 설치되어 있지 않거나, 커널 버전의 차이 등으로 로드에 실패한 상황이라면 다음과 같이 설치합니다.
# 버전 충돌을 방지하기 위해 기존에 설치된 버전을 제거합니다.
sudo apt remove -y --purge vastnfs-modules
VASTNFS_VERSION="4.0.37"
cd /tmp
wget https://vastnfs.vastdata.com/version/$VASTNFS_VERSION/source/vastnfs-$VASTNFS_VERSION.tar.xz
# vastnfs 드라이버를 빌드합니다.
tar -xf vastnfs-$VASTNFS_VERSION.tar.xz
cd vastnfs-$VASTNFS_VERSION
sudo ./build.sh bin
# vastnfs 드라이버를 설치합니다
sudo apt install -y ./dist/vastnfs-*_all.deb
sudo update-initramfs -u -k $(uname -r)
sudo vastnfs-ctl reload
# 설치에 사용된 파일들을 제거합니다.
cd /tmp
rm -rf /tmp/vastnfs-*
3 단계 : 병렬 파일 시스템 마운트
병렬 파일 시스템을 /mnt/parallel_storage 경로에 마운트하는 것을 기준으로 안내합니다.
3-1. systemd mount 파일 생성
What=에는 VIP 주소 중 첫 번째 주소인10.121.255.247을 사용합니다Options=에는 VIP 주소가 8 개로 이루어져 있으므로nconnect=8옵션을,
그리고 전체 VIP 주소를remoteports=10.121.255.247-10.121.255.254로 설정해줍니다
sudo tee /etc/systemd/system/mnt-parallel_storage.mount >/dev/null <<'EOF'
[Unit]
Description=Mount VAST NFS to /mnt/parallel_storage
After=network-online.target
Wants=network-online.target
[Mount]
What=10.121.255.223:/
Where=/mnt/parallel_storage
Type=nfs
Options=vers=3,nconnect=8,noatime,remoteports=10.121.255.223-10.121.255.230,_netdev
[Install]
WantedBy=multi-user.target
EOF
3-2. 마운트 디렉토리 생성 및 적용
sudo mkdir -p /mnt/parallel_storage
sudo systemctl daemon-reload
sudo systemctl enable --now mnt-parallel_storage.mount
3-3. 마운트 확인
df출력 결과에서/mnt/parallel_storage가 표시되면 병렬 파일 시스템 마운트가 정상적으로 완료된 상태입니다.