3장. GNBD 드라이버 및 명령 사용법
GNBD (Global Network Block Device) 드라이버는 노드가 네트워크를 통해 GNBD로 로컬 스토리지를 내보내기할 수 있도록 하여 해당 네트워크에 있는 다른 노드가 스토리지를 공유할 수 있게 합니다. GNBD를 가져오기한 클라이언트 노드는 이를 다른 블록 장치 처럼 사용합니다. 여러 클라이언트에서 GNBD를 가져오기하는 것은 GFS를 사용할 수 있도록 하여 공유 스토리지 설정을 형성합니다.
GNBD 드라이버는 다음과 같은 구성 요소를 통해 실행됩니다.
gnbd_serv
— GNBD 서버를 구현합니다. 이는 노드가 네트워크를 통해 로컬 스토리지를 내보내기할 수 있게 하는 user-space 데몬입니다.gnbd.ko
— GNBD 클라이언트 (GNBD 장치를 사용하는 노드)에서 GNBD 장치 드라이버를 구현합니다.
다음 두 개의 사용자 명령을 사용하여 GNBD를 설정할 수 있습니다:
3.1. 서버에서 GNBD 내보내기
gnbd_serv
데몬은 GNBD로 스토리지를 내보내기할 수 있게 되기 전에 노드에서 실행되고 있어야 합니다. 다음과 같이 gnbd_serv
명령을 실행하여 gnbd_serv
데몬을 시작할 수 있습니다:
#gnbd_serv
gnbd_serv: startup succeeded
내보내기할 로컬 스토리지가 확인되면,
gnbd_export
명령을 사용하여 이를 내보내기합니다.
참고
장치-매퍼 멀티패스가 있는 GNBD 서버를 설정할 때, 페이지 캐싱을 사용하지 않습니다. 논리 볼륨의 일부인 모든 GNBD는 캐싱을 비활성화하고 실행해야 합니다. 기본값으로
gnbd_export
명령은 캐싱을 비활성화하고 내보내기합니다.
참고
클라이언트로 사용하기 위해 서버는 GNBD를 가져오기하지 않습니다. 서버가 캐시되지 않은 장치를 내보내기할 경우, 기본 장치도
gfs
에 의해 사용될 수 있습니다.
3.1.1. 사용법
gnbd_export -d
pathname
-e
gnbdname
[-c
][-u
][-U
pathname
- 내보내기할 스토리지 장치를 지정합니다.
gnbdname
- GNBD를 위해 선택한 임의의 이름을 지정합니다. 이는 GNBD 클라이언트에서 장치 이름으로 사용됩니다. 이는 네트워크에 있는 내보내기한 모든 GNBD 사이에서 고유한 이름이어야 합니다.
-o
- 읽기-전용으로 장치를 내보내기합니다.
-c
- 캐싱을 활성화합니다. 내보내기한 GNBD에서 읽어와서 Linux 페이지 캐싱의 장점을 취합니다.기본값으로
gnbd_export
명령은 캐싱을 활성화하지 않습니다.참고
장치-매퍼 멀티패스와 함께 GNBD 서버를 설정할 때,-c
옵션을 지정하지 않습니다. 논리 볼륨의 일부분인 모든 GNBD는 캐싱을 비활성화하고 실행되어야 합니다.참고
GFS 5.2 또는 이전 버전을 사용하고 GNBD 설정을 변경하지 않으려는 경우에는-c
옵션을 지정해야 합니다. GFS 릴리즈 5.2.1 이전 버전에서는 Linux 캐싱이gnbd_export
에 대해 기본값으로 활성화되어 있었습니다.-c
옵션이 지정되지 않은 경우, GNBD는 현저하게 성능이 저하되어 실행됩니다. 또한,-c
옵션이 지정되지 않은 경우, 내보내기된 GNBD는 시간 제한 기본값 (-t
옵션)을 사용하여 시간 제한 모드에서 실행됩니다.gnbd_export
명령 및 해당 옵션에 대한 자세한 내용은gnbd_export
맨 페이지를 참조하십시오. -u
uid
- 내보내기한 장치에 수동으로 범용 식별자 (Universal Identifier)를 설정합니다. 이러한 옵션은
-e
와 함께 사용됩니다. UID는 장치-매퍼 멀티패스에 의해 사용되어 멀티패스 맵에 속한 장치를 결정합니다. 장치는 멀티패스된 UID를 반드시 가지고 있어야 합니다. 하지만, 대부분의 SCSI 장치의 경우 Get UID 기본값 명령/usr/sbin/gnbd_get_uid
이 적절한 값을 반환합니다.참고
UID는 GNBD 자체가 아니라 내보내기된 장치를 참조합니다. 두 개의 GNBD 장치의 UID는 같은 기본 장치를 내보내기할 경우에만 동일해야 합니다. 이는 두 GNBD 서버가 동일한 물리적 장치에 연결됨을 의미합니다.참고
-U
command
옵션이 작동하지 않을 경우, 이 옵션은 공유 스토리지 장치를 내보내기할 때에만 사용해야 합니다. 이러한 상황은 SCSI 장치에서는 거의 발생하지 않습니다. 두 개의 GNBD 장치가 동일한 기본 장치를 내보내기하지 않더라도 동일한 UID가 주어졌다면 데이터가 손상될 수 있습니다. -U
Command
- UID 명령을 취합니다. UID 명령은
gnbd_export
명령이 내보내기한 장치의 범용 식별자(Universal Identifier)를 알아내기 위해 실행되는 명령입니다. UID는 GNBD와 함께 장치-매퍼 멀티패스를 사용하기 위해 필요합니다. 이 명령은 실행하고자 하는 실행 파일의 전체 경로를 사용해야 합니다. 명령에는 %M, %m, %n 같은 확장 문자열을 포함시킬 수 있습니다. %M은 내보내기된 장치의 메이저 번호로 확장되며, %m은 내보내기된 장치의 마이너 번호로 확장되고, %n 은 장치의sysfs
이름으로 확장됩니다. 명령이 주어지지 않은 경우, GNBD는 기본값 명령/usr/sbin/gnbd_get_uid
을 사용하게 됩니다. 이러한 명령은 대부분의 SCSI 장치에 대해 작동하게 됩니다.
3.1.2. 예제
다음 예제는 GNBD 멀티패스로 설정된 GNBD 서버를 위한 것입니다. 이는 GNBD
gamma
로 /dev/sdc2
장치를 내보내기합니다. 캐시는 기본값으로 비활성화되어 있습니다.
gnbd_export -d /dev/sdc2 -e gamma -U
다음 예제는 GNBD 멀티패스로 설정되지 않은 GNBD 서버를 위한 것입니다. 이는 캐시 활성화하여 GNBD
delta
로 /dev/sdb2
장치를 내보내기합니다.
gnbd_export -d /dev/sdb1 -e delta -c
다음 예제에서는 활성화된 캐시와 함께 GNBD
delta
로서 /dev/sdb2
장치를 내보내기하고 있습니다.
gnbd_export -d /dev/sdb2 -e delta -c