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_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
gnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_export -d pathname -e gnbdname [-c][-u][-Ugnbd_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_export -d /dev/sdc2 -e gamma -U
다음 예제는 GNBD 멀티패스로 설정되지 않은 GNBD 서버를 위한 것입니다. 이는 캐시 활성화하여 GNBD
delta
로 /dev/sdb2
장치를 내보내기합니다.
gnbd_export -d /dev/sdb1 -e delta -c
gnbd_export -d /dev/sdb1 -e delta -c
다음 예제에서는 활성화된 캐시와 함께 GNBD
delta
로서 /dev/sdb2
장치를 내보내기하고 있습니다.
gnbd_export -d /dev/sdb2 -e delta -c
gnbd_export -d /dev/sdb2 -e delta -c