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をリンクテーブルと比較して、ほぼすべてのデバイスファイルを識別できます。