blkidとmdadm UUIDの違いは何ですか?

blkidとmdadm UUIDの違いは何ですか?

blkid報告されたものとUUIDの違いを説明できる人はいますかmdadm? CentOSシステムの1つを例にしましょう。

[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

なぜ違うの?使用されたUUIDをどのように変更しますかmdadm

tune2fsパーティションのUUIDを変更するために使用することを知っていますが(返された内容が変更されましたblkid)、使用される内容を変更する方法はわかりませんmdadm

答え1

最初は、ブロックデバイス上のext4ファイルシステムのUUIDを報告しますmd。これは、システムがシステムで利用可能なファイルシステムの中でファイルシステムを一意に識別するのに役立ちます。これはファイルシステムの構造、すなわちmdデバイスに格納されたデータに格納されます。

2番目はRAIDデバイスのUUIDです。これは、mdサブシステムが特定のRAIDデバイスを一意に識別するのに役立ちます。特に、RAIDアレイの一部であるすべてのブロックデバイスを識別するのに役立ちます。これは配列のメタデータ(各メンバー)に保存されます。アレイメンバーには独自のUUIDもあります(mdシステムではGPTパーティション(GPTパーティションテーブルに保存)、LVMボリュームの場合はパーティションUUIDを持つこともできます...)。

blkid返される内容はデバイスに格納されている構造の ID であるため、少し誤解を招くおそれがあります(ほとんどのファイルシステム、LVM メンバ、スワップデバイスなど、知っている構造タイプの場合)。さらに、ブロックデバイス(LVMスナップショットなど)が同じUUID構造を持つことは珍しくありません。ブロックデバイスは、構造体にUUIDを含まないコンテンツを含む全てを含むことができる。

たとえば、GPTパーティションで構成される3つのドライブを持つシステムがあるとします。これらのドライブに世界の共通名これを一意に識別します。 3つのドライブがそれぞれ1つのパーティション(/dev/sd[abc]1)に分割されているとします。各パーティションには、GPTパーティションテーブルに格納されているGPT UUIDがあります。

これらのパーティションがmd RAID5アレイを形成する場合。それぞれはRAIDメンバーとしてmd UUIDを取得し、アレイはmd RAIDデバイスでUUIDを取得します。

/dev/md0MSDOSまたはGPTタイプのパーティションを使用して、さらにパーティションを分割できます。たとえば、/dev/md0p1GPT UUID(/ dev / md0のデータに格納されているGPTパーティションテーブルに保存されている)を持つパーティションを持つことができます。

これは再びLVMの物理ボリュームである可能性があります。したがって、PV UUIDが得られます。ボリュームグループにはVG UUIDもあります。

このボリュームグループ内にそれぞれLV UUIDを持つ論理ボリュームを作成します。

LVの1つ(例/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

答え2

他の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 --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を使用したい場合は非常に迷惑です。ある形式から別の形式に変換する方法は明確ではありません。

答え3

"32cb0a6e-8148-44e9-909d-5b23df045bd1"上記のblkid UUIDは正確で、オペレーティングシステムでRAIDアレイを見つけるために使用されます。

mdadmにはオペレーティングシステムでは直接使用されませんが、mdadm.confファイルで使用される独自の「内部」UUIDがあります。たとえば、次のようになります。

"配列/dev/md1レベル=raid1 num-devices=2 uuid=f204c558:babf732d:85bd7296:bbfebeea"

mdadmがblkidから分離されてオペレーティングシステムがUUIDを認識している場合は、UUIDを呼び出さないでください。混乱を避けるために、mduuidまたは別の名前で呼び出す必要があります。

関連情報