blkid와 mdadm의 UUID의 차이점은 무엇입니까?


26

누군가가 UUID의에 의해보고의 차이 설명 할 수 blkidmdadm? CentOS 시스템 중 하나에서

[root@server ~]# blkid | grep /dev/md1
/dev/md1: UUID="32cb0a6e-8148-44e9-909d-5b23df045bd1" TYPE="ext4"

[root@server ~]# mdadm --detail /dev/md1 | grep UUID
UUID : f204c558:babf732d:85bd7296:bbfebeea

왜 다른 mdadm가요? 그리고 우리가 사용하는 UUID를 어떻게 바꿀 까요?

나는 우리가 사용하는 것이 이해 tune2fs(에 의해 반환되는 것을 바꿀 것있는 파티션의 UUID를 변경 blkid)하지만 확실히 무엇을 변경하는 방법을 mdadm사용합니다.

답변:


23

첫 번째는 md블록 장치 에서 ext4 파일 시스템의 UUID를보고합니다 . 시스템이 시스템에서 사용 가능한 파일 시스템 중에서 파일 시스템을 고유하게 식별하는 데 도움이됩니다. 이는 파일 시스템의 구조, 즉 md 장치에 저장된 데이터에 저장됩니다.

두 번째는 RAID 장치의 UUID입니다. md 서브 시스템이 특정 RAID 장치를 고유하게 식별하는 데 도움이됩니다. 특히 RAID 어레이에 속하는 모든 블록 장치를 식별하는 데 도움이됩니다. 배열의 메타 데이터 (각 멤버)에 저장됩니다. 배열 구성원은 또한 자체 UUID를 갖습니다 (md 시스템에서는 GPT 파티션 (GPT 파티션 테이블에 저장 됨) 또는 LVM 볼륨 인 경우 파티션 UUID도 가질 수 있음).

blkid반환되는 것은 장치에 저장된 구조의 ID이기 때문에 약간 오해의 소지가 있습니다 (대부분의 파일 시스템, LVM 멤버 및 스왑 장치와 같은 구조에 대해 알고 있습니다). 또한 동일한 UUID를 갖는 구조 (예 : LVM 스냅 샷)를 가진 블록 장치를 갖는 것은 드문 일이 아닙니다. 그리고 블록 장치는 UUID를 포함하지 않는 구조를 포함하여 무엇이든 포함 할 수 있습니다.

예를 들어, GPT 파티션을 사용하여 3 개의 드라이브가있는 시스템을 만들 수 있습니다. 해당 드라이브는 고유하게 식별 할 수있는 월드 와이드 이름 을 가질 수 있습니다 . 3 개의 드라이브가 각각 하나의 파티션 ( /dev/sd[abc]1)으로 파티션되었다고 가정 해 봅시다 . 각 파티션에는 GPT 파티션 테이블에 GPT UUID가 저장되어 있습니다.

해당 파티션이 md RAID5 어레이를 구성하는 경우. 각각은 md UUID를 RAID 멤버로 가져오고 어레이는 UUID를 md RAID 장치로 가져옵니다.

이는 /dev/md0MSDOS 또는 GPT 유형 파티셔닝으로 추가 파티셔닝 될 수 있습니다. 예를 들어, /dev/md0p1GPT UUID (/ dev / md0의 데이터에 저장된 GPT 파티션 테이블에 저장) 가있는 파티션이 있을 수 있습니다 .

이는 LVM의 물리적 볼륨 일 수 있습니다. 따라서 PV UUID를 얻게됩니다. 볼륨 그룹에도 VG UUID가 있습니다.

해당 볼륨 그룹에서 각각 LV UUID를 가져 오는 논리 볼륨을 작성합니다.

LV 중 하나 (예 :) /dev/VG/LV에서 ext4 파일 시스템을 만들 수 있습니다. 해당 파일 시스템은 ext4 UUID를 갖습니다.

blkid /dev/VG/LV해당 파일 시스템의 (ext4) UUID를 얻을 수 있습니다. 그러나 VG 볼륨 내부의 파티션으로 파티션 UUID도 얻습니다 (MSDOS / MBR과 같은 일부 파티션 구성표에는 UUID가 없음). 해당 볼륨 그룹은 다른 블록 장치 인 구성원 PV로 구성됩니다. blkid /dev/md0p1PV UUID를 제공합니다. 또한의 GPT 테이블에 파티션 UUID가 /dev/md0있습니다. /dev/md0자체는 다른 블록 장치로 만들어집니다. blkid /dev/sda1레이드 멤버 UUID를 반환합니다. 또한의 GPT 테이블에 파티션 UUID가 /dev/sda있습니다.


RAID 장치의 UUID를 어떻게 사용 mdadm합니까? 우리는 방금 서버 이미지를 다시 만들었고 UUID는 다르므로 모든 구성 파일을 변경할 필요가 없도록 이전 UUID를 복원하려고합니다. 기본적 /dev/md0으로 새로운 UUID가 있으며이를 이전 백업 (백업에서 식별)으로 되돌려 서 추가 변경없이 시스템을 부팅하려고합니다.
Chris

@Chris, MD UUID (참조 man mdadm) 또는 ext4 UUID (참조 man tune2fs)? 부트 파일이 루트 파일 시스템을 찾거나 initramfs에 저장된 mdadm.conf를 기반으로 RAID 어레이를 조립하는 데 문제가 있습니까? 어느 쪽이든, UUID와 어울리는 것보다 mdadm.conf 또는 fstab / grub.cfg를 업데이트하는 것이 더 간단하게 들립니다.
Stéphane Chazelas

MD UUID-백업에서 서버를 복원했습니다. RAID 장치의 UUID를 업데이트하는 방법을 알고 있습니까? 맨 페이지에서 해당 정보를 볼 수 없습니다. 우리는 그것을 작동시키는 가장 간단한 방법을 찾으려고 노력하고 있습니다 (복원 절차 테스트).
Chris

@Chris, 다른 질문을 제기해야합니다.
Stéphane Chazelas

@Chris : UUID가 다르기를 원합니다. mdadm에서 여러 디스크가 다른 RAID (UUID 충돌로 인해) 인 경우에도 동일한 RAID에 속한다고 생각하면 실제 문제가 발생합니다.
frostschutz

4

다른 UUID에 대해서는 이미 설명했습니다. 파일 시스템 만이 아닙니다. RAID 어레이, 장치, 파티션, LUKS 컨테이너, LVM PV 및 파일 시스템과 같은 다양한 요소에 대한 UUID가 있습니다.

개인적으로 저를 괴롭히는 것은 UUID의 형식화 방식이 다르다는 것입니다.

블리드 :

# blkid /dev/sda1
/dev/sda1: 
UUID="d8b8b4e5-e47b-2e45-2093-cd36f654020d"
UUID_SUB="3c3e6eac-2139-3f7a-16b7-57280934d88e"
PARTUUID="6a89cedf-69e1-40db-b08c-1c8e45af59f5" 

mdadm :

# mdadm --examine /dev/sda1 | grep UUID
     Array UUID : d8b8b4e5:e47b2e45:2093cd36:f654020d
    Device UUID : 3c3e6eac:21393f7a:16b75728:0934d88e

당신이 볼 수 있듯이, 그들은 같은 UUID가 있지만 blkid대시를 인쇄 -하는 반면 mdadm용도의 콜론 :. 당신이 얻을 그래서는 d8b8b4e5-e47b-2e45-2093-cd36f654020dd8b8b4e5:e47b2e45:2093cd36:f654020d.

특히 스크립트에서 UUID로 작업하려는 경우 매우 성가시다. 한 형식에서 다른 형식으로 변환하는 방법은 명확하지 않습니다.


s / : /-/ g는 어떻습니까? ;)
ThiefMaster 22.08에

실제로 콜론 :이나 대시 -가 있기 때문에 인간은 긴 UUID를 덩어리로 읽을 수 있으며 중간 어딘가에서 길을 잃지 않을 수 있습니다. UUID는 실제로 이진 숫자이며 대시 또는 콜론이 없습니다. Linux에서는 부호없는 문자 배열로 구현됩니다 unsigned char uuid_out[16]. 분명히 UUID 사양에는 변형 및 버전에 대한 아이디어가 있으며 가장 중요한 바이트 uuid_out[6]를 4 로 설정하여 구현할 수 있습니다 .
TrinitronX

-1

"32cb0a6e-8148-44e9-909d-5b23df045bd1"위의 blkid UUID가 올바른 것입니다. 즉, OS가 RAID 배열을 찾는 데 사용합니다.

mdadm에는 OS에서 직접 사용하지 않는 자체 "내부"UUID가 있으며 mdadm.conf 파일에서 사용하는 것입니다. 예 :

"ARRAY / dev / md1 level = raid1 num-devices = 2 uuid = f204c558 : babf732d : 85bd7296 : bbfebeea"

mdadm은 blkid 및 OS가 인식하는 UUID와 분리 된 경우 UUID를 호출하지 않아야합니다. 혼동을 피하기 위해 mduuid 또는 다른 것이어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.