Ben Ubuntu ve CentOS kullandığınızda, görüyorum /dev/sda
ve /dev/vda
. Yani, yukarıdaki iki arasındaki farkın ne olduğunu anlayamıyorum.
Ben Ubuntu ve CentOS kullandığınızda, görüyorum /dev/sda
ve /dev/vda
. Yani, yukarıdaki iki arasındaki farkın ne olduğunu anlayamıyorum.
Yanıtlar:
Farklı aygıtlar.
/dev/sda
SCSI 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/vda
sanallaş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/vda
neredeyse kesinlikle daha hızlı olacağı için tercih etmelisiniz .
/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.
/dev/sdx
ve /dev/hdx
fiziksel (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/vdx
sanal (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, vdx
daha 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
Gelen udev
kurallarda /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/vda
ilk, 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, ...
/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/sda
sabit diskinizde /dev/vda
bulunan tüm aygıt dosyaları, sanal makineniz için ayrılan alanda bulunan tüm aygıt dosyalarıdır.
Bu /dev/.da
cihaz 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...200
her 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.
vda
Blok 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ı stat
bir 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 Type
8'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.