sdXとvdXの違い


回答:


29

それらは異なるデバイスです。

/dev/sdaSCSIまたは(可能性が高い)SCSIドライブAPIをユーザーランドに提供する最初のディスクです。これには、SATAドライブとlibataを使用したIDEドライブが含まれます。IDE / SATA / SCSI / etcでもかまいません。ハイパーバイザーによってエミュレートされるドライブ。

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

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


2
マシンに/ dev / sdXと/ dev / vdXの両方のデバイスを持つことの目標は何ですか?
chromechris

1
@ user42076私が考えることができるのは、OSが高速をサポートしていない場合に、VMで実行しているOSが両方のインターフェイスを提供できるかどうかを正確に知らないホスティング会社だけです/dev/vda。それ以外...あなたがそれをする理由がわかりません。実際にそれがどこかで行われているのを見ているのなら、おそらくそれは価値のある質問です。
デロバート

@ user42076はい、私はこれについて尋ねるつもりです。。。。。笑
chromechris

15

/dev/sdxそして/dev/hdx物理的(ハード)ディスクドライブまたはエミュレートされた物理的(ハード)ディスクドライブです。カーネルまたはいくつかのプログラムがこれらに対してI / Oを実行すると、ディスクを適切な場所に移動したり、あらゆる種類の物理固有の「処理」を行うなど、あらゆる種類の処理を実行します。

/dev/vdx仮想(ハード)ディスクドライブ用です。I / Oが必要な場合、カーネルはすべて、仮想化ソフトウェアにビットの読み取り/書き込みが必要であり、完了したことを伝えるだけです。一般的に、vdxカーネルはハードドライブにランダムなジャンクの全体を実行するように指示する必要がないため、高速になります。

「もの」という言葉をおforびします。もっと良い言葉は考えられませんでした:D


言葉は十分に表現力豊かでした-答えてくれてありがとう。
mikeserv 14

1
もの?「何か」または「要求されたIO操作」を考えることができませんでした。謝罪は受け入れられません。;)
ヨハン14

4

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最初に、仮想ハードドライブ(NOハードウェアidentificators)とバスIDですvirtio。qemu / kvmゲストのように見えます。

/dev/sd*デバイスのudevルールは、さらに異なるハードウェアタイプにすることができます:scsi、ata、ieee1394、usb、...


2

/dev/ UNIXディレクトリツリー内のすべての「デバイス」ファイルが含まれる部分です。unixは、従来、読み取りまたは書き込み用のファイルとしてアクセスできるすべてのものを扱います。

つまり、本質的には/dev/sda、ハードドライブで見つかった/dev/vdaすべてのデバイスファイルであり、仮想マシンに割り当てられたスペースで見つかったすべてのデバイスファイルです。


0

/dev/.daまだ言及されていないこれらのデバイスファイルが異なる基本的な方法の1つは、異なるカーネルメジャー番号を表すことです。このリンクをたどると、割り当てられたデバイスメジャー番号のほとんどすべての表を含むカーネルソースドキュメントページが表示されます。この同じファイルはハードディスクのどこかにある可能性が非常に高いです。

あなたの質問に関して、簡単な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カーネルによって使用されます-デバイスタイプを識別します。

上記のリストは、CTRL-Fで見つかった4つの一致のうち3つを示しています。

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として指定されていることがわかります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.