UbuntuとCentOSを使用すると、とが表示さ/dev/sda
れ/dev/vda
ます。上記の2つの違いは何なのかわかりませんか?
UbuntuとCentOSを使用すると、とが表示さ/dev/sda
れ/dev/vda
ます。上記の2つの違いは何なのかわかりませんか?
回答:
それらは異なるデバイスです。
/dev/sda
SCSIまたは(可能性が高い)SCSIドライブAPIをユーザーランドに提供する最初のディスクです。これには、SATAドライブとlibataを使用したIDEドライブが含まれます。IDE / SATA / SCSI / etcでもかまいません。ハイパーバイザーによってエミュレートされるドライブ。
/dev/vda
仮想化対応ディスクドライバーを使用する最初のディスクです。ハイパーバイザーはハードウェアインターフェイスをエミュレートする必要がないため、パフォーマンスは大幅に向上するはずです。
ディスクが両方のインターフェイスでVMに公開されている場合は、/dev/vda
ほぼ確実に高速になるため、選択する必要があります。
/dev/vda
。それ以外...あなたがそれをする理由がわかりません。実際にそれがどこかで行われているのを見ているのなら、おそらくそれは価値のある質問です。
/dev/sdx
そして/dev/hdx
物理的(ハード)ディスクドライブまたはエミュレートされた物理的(ハード)ディスクドライブです。カーネルまたはいくつかのプログラムがこれらに対してI / Oを実行すると、ディスクを適切な場所に移動したり、あらゆる種類の物理固有の「処理」を行うなど、あらゆる種類の処理を実行します。
/dev/vdx
仮想(ハード)ディスクドライブ用です。I / Oが必要な場合、カーネルはすべて、仮想化ソフトウェアにビットの読み取り/書き込みが必要であり、完了したことを伝えるだけです。一般的に、vdx
カーネルはハードドライブにランダムなジャンクの全体を実行するように指示する必要がないため、高速になります。
「もの」という言葉をおforびします。もっと良い言葉は考えられませんでした:D
の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、...
/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として指定されていることがわかります。