SdX ve vdX arasındaki fark


33

Ben Ubuntu ve CentOS kullandığınızda, görüyorum /dev/sdave /dev/vda. Yani, yukarıdaki iki arasındaki farkın ne olduğunu anlayamıyorum.


Bunlardan biri VM'de mi?
goldilocks

Evet. VM kullanıyorum .. :)
Supun Rathnayake

Yanıtlar:


29

Farklı aygıtlar.

/dev/sdaSCSI sürücü API'sini kullanıcı ülkesine sağlayan ilk disktir. Bu, libata kullanan SATA sürücülerini ve IDE sürücülerini içerir. Bu aynı zamanda bir IDE / SATA / SCSI / etc olabilir. hiper yönetici tarafından öykünülmüş sürücü.

/dev/vdasanallaştırmaya duyarlı disk sürücüsünü kullanan ilk disktir. Hipervizörün bazı donanım arayüzlerini taklit etmesi gerekmediğinden performans daha iyi olmalıdır.

Disk her iki arayüzde de VM'nize maruz kaldıysa, /dev/vdaneredeyse kesinlikle daha hızlı olacağı için tercih etmelisiniz .


2
Bir makinede / dev / sdX ve / dev / vdX cihazlarının ikisinin de hedefi nedir?
chromechris

1
@ user42076 Aklıma gelen tek şey, işletim sisteminizin daha hızlı desteklememesi ihtimaline karşı, VM'inde hangi işletim sisteminin çalıştığını tam olarak bilmeyen bir barındırma şirketidir /dev/vda. Bundan başka ... neden yaptığını bilmiyorum. Aslında bir yerde yapıldığını görüyorsanız, muhtemelen kendi sorusu buna değer.
derobert,

@ user42076 Evet, bunu soracağım. . . . . lol
chromechris

15

/dev/sdxve /dev/hdxfiziksel (sabit) disk sürücüleri veya öykünmüş fiziksel (sabit) disk sürücüleridir. Çekirdek veya bazı program G / Ç'leri bunlara geldiğinde, diski doğru noktaya getirmek ve her türlü fiziksel-özel “şeyi” yapmak gibi her türlü işlemi yapar.

/dev/vdxsanal (sabit) disk sürücüleri içindir. Yapılması gereken zaman çekirdek, sanallaştırma yazılımına, bitlerin okunması / yazılması ve bitmesi gerektiğini söyler. Genelde, vdxdaha hızlıdır, çünkü çekirdeğin sabit diske gerçekten ihtiyaç duyulmaması gereken bir grup rastgele ıvır zıvır yapması gerektiğini söylemesi gerekmez çünkü sadece VM hipervizörüne bir şeyler yapması gerekir.

"Şeyler" kelimesi için özür dilerim, daha iyi bir kelime düşünemedim: D


Kelime çok anlamlıydı - cevabınız için teşekkürler.
mikeserv

1
Şey? “Bir şey” veya “istenen IO operasyonu” nu düşünemezsiniz. Özür kabul edilmedi. ;)
Johan

4

Gelen udevkurallarda /lib/udev/rules.d/*çekirdekten hangi ismi alır tür donanım hangi tanımlanır.

Kurallara bakın /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}"

Öyleyse /dev/vdailk, sanal sabit sürücü (donanım tanımlayıcı yok) ve bir veriyolu kimliğidir virtio. Bir qemu / kvm konuğuna benziyor.

/dev/sd*Cihazlar için udev kuralları daha farklı donanım tipleri olabilir: scsi, ata, ieee1394, usb, ...


2

/dev/ unix dizin ağacındaki tüm "aygıt" dosyalarını içeren bölümdür - unix, geleneksel olarak, okumak veya yazmak için bir dosya olarak erişebileceğiniz hemen hemen her şeyi ele alır.

Yani, asıl olarak, /dev/sdasabit diskinizde /dev/vdabulunan tüm aygıt dosyaları, sanal makineniz için ayrılan alanda bulunan tüm aygıt dosyalarıdır.


0

Bu /dev/.dacihaz dosyalarının henüz belirtilmemiş olan farklılıklarının oldukça temel bir yolu, farklı çekirdek ana sayılarını temsil etmeleridir . Bu bağlantıyı takip ederseniz, çoğunlukla tahsis edilen cihazın ana sayılarından oluşan bir tablo içeren bir çekirdek kaynak dokümantasyon sayfasına inersiniz . Bu aynı dosya, sabit diskinizde bir yerlerde de çok muhtemeldir.

İşte sorunuzla ilgili olarak hızlı bir CTRL-F'nin karşılaştığı şey:

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.

En 112üstte listelenen sayı tahsis edilen büyük sayıyı ve 0...8...200her satırdan önce listelenen çeşitli sayılar olası küçük sayı aralıklarını gösterir. Bu sayılar, diğer birçok şeyin yanı sıra, linux çekirdeği tarafından sürücü modüllerini fiziksel cihazlarla eşleştirmek için kullanılır - bir cihaz türünü tanımlarlar.

Yukarıdaki liste CTRL-F ile bulunan 4 karşılaşmanın 3'ünü oluşturmaktadır - işte dördüncü:

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.

vdaBlok tipleri arasında kesinlikle bir eğilim olduğu görülüyor . Bunların dokümantasyonda tamamen güncel olmayabilir - kernel.org 'a bağlı olsa bile. Sonuçta, devs sadece insandır. Ancak olası bir başka tutarsızlık kaynağı da dağıtımınızın bakım sağlayıcılarının cihazları bulmayı seçtiği yer. Listelenen yolların büyük bir kısmı önerilerden biraz daha fazladır - bunların yerini değiştirmenin birçok yolu vardır.

Ve işte 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.

Daha önce de belirtildiği gibi - bu yollar kesinlikle yapılandırılabilir - ancak ana / küçük sayılar kendileri oldukça açık tanımlayıcılar olarak hizmet ediyor. Bunları statbir cihaz dosyasına yapılan bir çağrı ile kontrol edebilirsiniz .

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: -

Bu benim /dev/sda. Orada çok fazla bilgi var, ancak sağda Device Type8'inci büyük, 8'i küçük sayı olarak belirtildiğini görebiliyorsunuz. Maj / dk'sını bağlı tabloyla karşılaştırarak hemen hemen herhangi bir cihaz dosyasını tanımlayabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.