Linux sistemi inode-hard link, soft link, innodb boyutu ve bölünmesi vb. İlkelerini açıklayın.

Genel Bakış

Linux'ta her şey bir dosyadır ve her dosyanın bir inode'u vardır. Inode dosya ile ilişkilendirildikten sonra, sistem dosyayı dosya adı yerine inode numarasıyla tanımlayacaktır. Ve dosyaya erişirken, önce inode bulunacak ve dosya, inode'da kaydedilen blok konumu aracılığıyla bulunacaktır.

1. Sabit bağlantı

Her dosyanın bir inode'u olmasına rağmen, bir olasılık vardır: birden fazla dosya aynı inode'a sahiptir, yani, inode numarası, meta veriler ve blok konumu aynıdır Bu ne tür bir durumdur? Aynı inode'a sahip bu dosyaların aynı inode kaydını kullandığı düşünülebilir, bu yüzden aynı dosyayı temsil ederler.Bu dosyaların bulunduğu dizinin veri bloğundaki inode işaretçisinin hedefi aynıdır, ancak her işaretçinin dosyaya karşılık gelmesi İsimler birbirinden farklı. Aynı inode'a sahip bu dosyaya Linux'ta "sabit bağlantı" denir.

Sabit bağlantılı dosyaların düğümleri aynıdır Her dosyanın bir "sabit bağlantı sayısı" özniteliği vardır. Ls -l kullanan ikinci sütun, sabit bağlantılı dosyaların sayısıdır, yani dosyanın birkaç sabit bağlantısı vardır.

Örneğin, aşağıdaki şekil dosya adı1'i ve dir1 dizinindeki dir2 / ad2 sabit bağlantısını açıklar ve bunların inode ve veri bloğu sağdadır. Burada ayrıca sabit bağlantı dosyaları arasındaki tek farkın bulundukları dizindeki farklı kayıtlar olduğu da görülmektedir. Aşağıdaki şekilde, sabit bağlantıların sayısını gösteren öznitelik olan bir Bağlantı Sayısı sütunu olduğuna dikkat edin.

Bir dosyaya sabit bağlantı her oluşturulduğunda, esasen inode kaydına bir tane daha inode işaretçisi vardır ve sabit bağlantıların sayısı bir artar.

Bir dosyayı silmenin özü, dosyanın bulunduğu dizinin veri bloğundaki karşılık gelen inode işaretçisini silmektir, böylece sabit bağlantıların sayısını da azaltır.Blok işaretçisi, inode'da depolandığından, verileri gerçekten silmez. inode, ardından dosyanın blok işaretçisi hala kullanılabilir durumda olur. Sabit bağlantı sayısı 1 olduğunda, dosyayı silmek gerçekten dosyayı silmek demektir ve inode kaydındaki blok işaretçisi de silinecektir.

Farklı dosya sistemlerinin inode sayıları aynı olabileceğinden, bölümler arasında sabit bağlantılar oluşturulamaz. Sabit bağlantıların oluşturulmasına izin verilirse, inode, başka bir bölüme kopyalarken bu bölümde zaten kullanılan inode numarasıyla çakışabilir.

Sabit bağlantı nasıl oluşturulur: ln file_target link_name.

2. Yumuşak bağlantı

Yumuşak bağlantı, karakter bağlantısıdır ve bağlantı dosyası varsayılan olarak karakter bağlantı dosyasına başvurur (bunun bir karakter aygıtı olmadığını unutmayın). Türünü belirtmek için "l" kullanın.

Dosya sistemleri arasında sabit bağlantılar oluşturulamaz, aksi takdirde inode numaraları çakışabilir. Bu nedenle, dosya sistemleri arasında bir bağlantı kurmak için yumuşak bir bağlantı uygulanır. Bir çapraz dosya sistemi olduğundan, yazılım bağlantısının kendi inode numarasına sahip olması gerekir.

Yazılım bağlantısı, işlevsel olarak Windows sistemindeki kısayola eşdeğerdir. Orijinal dosyaya işaret eder. Orijinal dosya hasar görürse veya kaybolursa, yumuşak bağlantı dosyası zarar görür. Yumuşak bağlantı inode kaydındaki göstericinin içeriğinin hedef yolun dizesi olduğu düşünülebilir.

Oluşturma yöntemi: ln s source_file softlink_name , Kaynak_dosyasını hatırla < - bağlantı_adı'nın işaretleme ilişkisi (ters ok).

Softlink'in değerini görüntüleyin: readlink softlink_name

Yumuşak bir bağlantı kurarken, kaynak_dosyası mutlak bir yol gerektirmese de, mutlak bir yol sağlanması önerilir.

3. İnode boyutu ve bölümü

Inode boyutu 128 bayt'ın katıdır ve minimum 128 bayttır. Varsayılan bir boyutu vardır ve varsayılan değeri /etc/mke2fs.conf dosyasında belirtilmiştir. Varsayılan değer, farklı dosya sistemleri için farklı olabilir.

# cat /etc/mke2fs.conf

Ayrıca blok boyutunun varsayılan değerinin ve inode_ratio inode_ratio tahsis oranının da bu dosyaya kaydedildiği gözlenmiştir. inode_ratio = 16384, her 16384 bayta bir inode numarasının tahsis edildiği anlamına gelir, yani 16KB.Varsayılan blok boyutu = 4KB olduğundan, her 4 blok için bir inode numarası tahsis edilir. Tabii ki, atanan inode numaraları sadece önceden tahsis edilmiştir, bu onların hepsinin kullanılacağı anlamına gelmez Sonuçta, her dosyaya bir inode numarası atanacaktır. Bununla birlikte, tahsis edilen inode'un kendisi bloğu işgal eder ve 256 baytlık kendi boyutu çok küçük değildir, bu nedenle inode numarasının israfı bir alan israfını temsil eder.

Artık inode tahsis oranını bildiğinize göre, her blok grubu için kaç inode numarasının tahsis edildiğini hesaplayabilir ve ayrıca inode tablosunun kaç blok kapladığını da hesaplayabilirsiniz.

Dosya sisteminde filmler gibi çok sayıda büyük dosya depolanırsa, inode numarası çok fazla israf olur ve inode'un kapladığı alan da çok fazla israf olur. Ancak dosya sistemi, dosya sisteminizin ne tür verileri depolamak için kullanıldığını, ne kadar veri, ne kadar veri kullandığını bilmez.

4. ext dosya sistemi tarafından ayrılan inode numarası

Ext, aşağıdaki gibi özel özellikler için bazı inode'ları ayırır: Bazıları her zaman doğru olmayabilir. Belirli inode numarasına karşılık gelen dosyayı görüntülemek için "find / -inum NUM" kullanabilirsiniz.

  • Ext4 özel inode
  • Inode numarası Amaç
  • 0 İnode yok 0 mevcut değil
  • 1 / proc ve / sys gibi sanal dosya sistemi
  • 2 Kök dizin
  • 3 ACL indeksi
  • 4 ACL verileri
  • 5 Önyükleyici
  • 6 Silinmemiş dizinler
  • 7 ayrılmış blok grubu tanımlayıcı inode
  • 8 giriş modu
  • 11 İlk rezerve edilmemiş inode, genellikle kayıp + bulunan dizin

Bu nedenle ext4 dosya sisteminin dumpe2fs bilgisinde ilk inode numarasının 11 veya 12 olabileceği gözlemlenebilir.

Ve "/" inode sayısının 2 olduğuna dikkat edin, bu özellik dosyalara erişilirken kullanılacaktır.

Her dosya sisteminin kendi inode numarasını atadığı ve aynı inode numarasına sahip dosyaların farklı dosya sistemleri arasında görünebileceği unutulmamalıdır. Örneğin:

# find / -ignore_readdir_race -inum 2 -ls

Sonuçlardan, kök Inode sayısı 2'ye ek olarak, inode sayıları 2 olan birkaç dosyanın da olduğu görülmektedir. Bunların tümü bağımsız dosya sistemleridir ve bazıları / proc ve / sys gibi sanal dosya sistemleridir.

Daha sonra daha fazla devop ve DBA içeriği paylaşacağım ve ilgilenen arkadaşlar buna dikkat edebilir ~

Xianyu'da bir rapçi olarak bir ayda ne kadar kazanabilirim?
önceki
2019 Çin (Xinji) Uluslararası Deri ve Kürk Moda Haftası açılıyor
Sonraki
Ali Jingdong Tigerın ağzından yiyecek almaya cesaret edin, bu dört kelimeye dayanarak her gün milyonlar kazanıyor
MySQL veritabanı JSON türünü ayrıntılı kullanım, yani yerleşik işlevlerle açıklayın
Huawei TV'yi yeniden tanımlıyor! Xiaomi'den korkuyor musunuz?
Linux komutunu açıklayın - diğer ad gelişmiş kullanımı
Xinhua Haber Ajansı bir arama motoru başlattı! Baidu'nun sonunda gidecek yeri kalmayacak mı?
Ayrıntılı önyükleme bloğu, süper blok, GDT, vb. İle Linux dosya sisteminin tüm yapısını açıklayın.
Kapanıyor! Xiamen Doğu Sporları Kongre ve Sergisi Yeni Şehri'nin en son planı ortaya çıktı! Büyük bir güzel resim dalgası geliyor
Ali 20 milyar yuan yatırım yaptı Merhaba seyahatinin "kara atı" nasıl ortaya çıktı?
On Adım-Bir veritabanı arızasıyla karşılaştıktan sonra DBA'nın yerini hızlı bir şekilde bulma
Jack Ma durup beklesin, el sıkıştı ve teşekkür etti Kim bunlar?
Mysql veritabanının WAL mekanizmasını ayrıntılı olarak açıklayın - önce günlüğü yazın, ardından diske yazın
Memur + iş baskısı! Hebeinin binlerce kişiden oluşan en son işe alımı, kaydolun
To Top