sdXとvdXの違い

sdXとvdXの違い

UbuntuとCentOSを使用すると/dev/sda/dev/vda。それでは、上記の2つの違いが何であるかを理解していませんか?

答え1

それらは別のデバイスです。

/dev/sdaこれは、最初のSCSIディスク、またはユーザースペースにSCSIドライバAPIを提供するディスクである可能性が高いです。これには、libataを使用するSATAドライブとIDEドライブが含まれます。 IDE/SATA/SCSIなどの場合もあります。ハイパーバイザーによってエミュレートされたドライブ。

/dev/vda仮想化対応ディスクドライバを使用した最初のディスクです。ハイパーバイザーは特定のハードウェアインターフェースをエミュレートする必要がないため、パフォーマンスがはるかに向上します。

ディスクが両方のインターフェイスですでにVMに公開されている場合は、高速であるため、/dev/vda優先する必要があります。

答え2

/dev/sdx/dev/hdx物理(ハード)ディスクドライブまたはシミュレートされた物理(ハード)ディスクドライブ。カーネルまたは一部のプログラムがこれに対してI / Oを実行するときに、ディスクを正しい場所にインポートし、さまざまな物理関連の「タスク」を実行するなど、さまざまなタスクを実行します。

/dev/vdx仮想(ハード)ディスクドライブと一緒に使用されます。カーネルがI / Oを実行するときに行うことは、仮想化ソフトウェアに読み取り/書き込みが必要なビットを通知するだけです。通常、vdxカーネルはVMハイパーバイザーに何かをするように指示するだけです。

「モノ」という言葉についてお詫び申し上げます。より良い言葉は思い出されませんでした。 :D

答え3

カーネルでどのハードウェアがどの名前を取得するかはルールudevで定義されています。/lib/udev/rules.d/*

次の規則を参照してください/dev/vd*

# partitions do not have hardware identifiers
ENV{DEVTYPE}!="disk",                   GOTO="persistent_storage_not_a_disk"
# nor do paravirtualized hard disks
KERNEL=="vd*",                          GOTO="persistent_storage_not_a_disk"

...

KERNEL=="vd*",                          ATTRS{serial}=="?*", \
ENV{ID_BUS}="virtio",   ENV{ID_SERIAL}="$attr{serial}"

最初の/dev/vda仮想ハードドライブ(ハードウェア識別子なし)とバスIDも同じですvirtio。 qemu/kvm ゲストのように見えます。

デバイスのUdevルールは、/dev/sd*scsi、ata、ieee1394、usbなど、さまざまな種類のハードウェアです。

答え4

これらのデバイスファイルに対するかなり基本的な/dev/.da違い(まだ記載されていない)は、異なるデバイスファイルを表すことです。カーネルメジャー番号。リンクをクリックすると、テーブルを含むカーネルソースドキュメントページに移動します。最大割り当てられたすべてのデバイスのキー番号。同じファイルがハードドライブのどこかにある可能性が高いです。

これは速いですCTRL-Fあなたの質問について次のように思い出しました。

112 block IBM iSeries virtual disk
      0 = /dev/iseries/vda  First virtual disk, whole disk
      8 = /dev/iseries/vdb  Second virtual disk, whole disk
        ...
    200 = /dev/iseries/vdz  26th virtual disk, whole disk
    208 = /dev/iseries/vdaa 27th virtual disk, whole disk
        ...
    248 = /dev/iseries/vdaf 32nd virtual disk, whole disk

    Partitions are handled in the same way as for IDE
    disks (see major number 3) except that the limit on
    partitions is 7.

112上部にリストされている数字は割り当てられたメジャー番号を表し、各行の前にリストされているさまざまな数字は0...8...200可能なマイナー番号の範囲を表します。 Linuxカーネルはこの番号を使用してドライバモジュールを物理デバイスとペアにし、デバイスタイプを識別します。

上記のリストは4試合のうち3試合を表しています。CTRL-F- 4回目です。

202 block   Xen Virtual Block Device
      0 = /dev/xvda       First Xen VBD whole disk
      16 = /dev/xvdb      Second Xen VBD whole disk
      32 = /dev/xvdc      Third Xen VBD whole disk
        ...
      240 = /dev/xvdp     Sixteenth Xen VBD whole disk

            Partitions are handled in the same way as for IDE
            disks (see major number 3) except that the limit on
            partitions is 15.

vdaブロックタイプには傾向があるようです。 kernel.orgにリンクされていても、文書の内容が完全に最新ではない可能性があります。結局、開発者は人間だけです。しかしながら、不一致のもう一つの考えられる原因は、配備メンテナンス担当者が機器の配置を選択する場所である。リストされている多数のパスは単なる提案です。ルートを再配置する方法はさまざまです。

これはsda

8 block SCSI disk devices (0-15)
      0 = /dev/sda      First SCSI disk whole disk
     16 = /dev/sdb      Second SCSI disk whole disk
     32 = /dev/sdc      Third SCSI disk whole disk
        ...
    240 = /dev/sdp      Sixteenth SCSI disk whole disk

    Partitions are handled in the same way as for IDE
    disks (see major number 3) except that the limit on
    partitions is 15.

すでに指摘したように、これらのパスは非常に設定可能ですが、州/マイナー番号自体は非常に明確な識別子として機能します。statデバイスファイルを呼び出してこれを確認できます。

stat /dev/sda

  File: ‘/dev/sda’
  Size: 0               Blocks: 0          IO Block: 4096   block special file
Device: 5h/5d   Inode: 7598        Links: 1     Device type: 8,0
Access: (0660/brw-rw----)  Uid: (    0/    root)   Gid: (    6/    disk)
Access: 2014-07-18 11:10:13.112495427 -0700
Modify: 2014-07-16 18:59:41.313323401 -0700
Change: 2014-07-16 18:59:41.313323401 -0700
 Birth: -

それは私のものです/dev/sda。そこには多くの情報がありますが、右側にはDevice Type主装置番号8と補助装置番号0が割り当てられていることがわかります。そのmaj / minをリンクテーブルと比較して、ほぼすべてのデバイスファイルを識別できます。

関連情報