Linux에서 둘 이상의 서버 간의 공유 디스크를 확인하는 방법은 무엇입니까?

Linux에서 둘 이상의 서버 간의 공유 디스크를 확인하는 방법은 무엇입니까?

한 서버의 디스크가 두 번째 서버(공유 디스크)의 디스크와 동일한지 확인하는 방법을 알고 싶습니다.

이 길이 맞는 걸까요? (메이저: 마이너 번호 비교)

서버 01:

[root@server01 ~]# ls -l /dev/dm-90
brw-rw----. 1 root disk 253, 90 Apr 10 03:41 /dev/dm-90
[root@server01 ~]#

서버 02:

[root@server02 ~]# ls -l /dev/dm-90
brw-rw---- 1 root disk 253, 90 Apr 10 04:09 /dev/dm-90
[root@server02 ~]#

답변1

IMHO - 아니요, 주요 장치 번호는 괜찮습니다. 장치 유형을 제공하지만(커널에 정의된 드라이버 수에 따라) 부 장치 번호는 해당 유형의 장치 수에 따라 다를 수 있습니다. 특정 서버에 있습니다. 그래서 그들은 다를 수 있습니다.

각 서버의 처음 1MB의 해시를 비교해 볼 수 있습니다.

dd if=/dev/dm-90 bs=512 count=2048|sha1sum

그러나 이러한 디스크가 매우 "동적"(많은 쓰기 작업)인 경우 잘못된 결과가 나타날 수 있습니다.

이러한 디스크에 파일 시스템이 있고 마운트된 경우 또 다른 가능한 접근 방식은 한 번에 하나의 파일을 생성하는 것입니다.

dd if=/dev/urandom of=/mount/point/of/disk/1MBfile bs=512 count=2048

그런 다음 두 서버의 파일 해시를 비교합니다.

sha1sum /mount/point/of/disk/1MBfile

답변2

메이저/마이너 번호는 비영구적이며 운영 체제에 의해 로컬로 동적으로 할당됩니다.확실히 적합하지 않아요서버 전체에서 디스크를 식별하는 데 사용됩니다.

더 나은 해결책은 디스크 일련 번호, 디스크 WWID(사용 가능한 경우), 디스크가 파일 시스템, 파일 시스템 UUID(또는 이와 동등한 것)로 초기화되었는지 여부 등 디스크 자체의 고유한 특성을 확인하는 것입니다.

최신 Linux 시스템의 경우:

lsblk -o +MODEL,SERIAL,WWN,UUID

대부분의 디스크 유형에 대해 합리적으로 강한 확신을 가질 수 있도록 충분한 정보가 표시되어야 합니다.

디스크/LUN이 실제로 동일하지 않고 원본 디스크의 스토리지 시스템 수준 스냅샷 또는 복제본일 수 있으므로 파일 시스템 UUID만으로는 충분하지 않습니다.

공유 디스크가 다중 경로인 경우 device-mapper-multipath 도구에 표시된 WWID는 multipath -ll스토리지 시스템 LUN을 식별하는 좋은 방법이기도 합니다.

(내가 이해한 바에 따르면 WWID는 어떤 디스크 장치가 실제로 동일한 LUN에 대한 중복 경로인지, 다른 LUN인지 식별하는 장치 매퍼 다중 경로의 기본 방법입니다.)

관련 정보