An Introduction to Storage Terminology and Concepts in Linux
Linux depolama dünyası, ilk bakışta karmaşık ve göz korkutucu görünebilir. Ancak, temel terminolojiyi ve kavramları anladığınızda, sisteminizin nasıl çalıştığını daha iyi kavrayabilir, sorunları daha etkili bir şekilde giderebilir ve depolama alanınızı optimize edebilirsiniz. Bu makale, Linux’taki depolama terminolojisi ve kavramlarına kapsamlı bir giriş sunmayı amaçlamaktadır.
Depolama Hiyerarşisi: Fizikselden Mantıksala
Linux’ta depolama, bir hiyerarşi içinde organize edilir. En temel seviyeden başlayıp daha soyut seviyelere doğru ilerleyerek bu yapıyı inceleyelim.
Fiziksel Depolama Cihazları
Bu, sisteminize fiziksel olarak bağlı olan depolama donanımlarını ifade eder.
Sabit Disk Sürücüleri (HDD)
Geleneksel depolama aygıtlarıdır. Manyetik plakalar üzerinde veri depolarlar. Mekanik parçalar içerdiği için SSD’lere göre daha yavaş ve daha hassastır.
Katı Hal Sürücüleri (SSD)
Flash bellek teknolojisini kullanarak veri depolayan daha modern ve hızlı depolama aygıtlarıdır. Mekanik parçaları olmadığı için daha dayanıklı, daha hızlı ve daha sessizdir.
NVMe (Non-Volatile Memory Express) SSD’ler
SSD teknolojisinin en yeni ve en hızlı örneklerindendir. PCIe arayüzünü kullanarak doğrudan CPU’ya bağlanır ve çok daha yüksek okuma/yazma hızları sunar.
RAID Denetleyicileri
Birden fazla fiziksel diski tek bir mantıksal birim olarak yönetmek için kullanılan donanım veya yazılım bileşenleridir. Performansı artırmak, veri yedekliliğini sağlamak veya her ikisini birden gerçekleştirmek için kullanılır.
Mantıksal Depolama Yapıları
Fiziksel cihazlar, işletim sistemi tarafından kullanılabilmesi için mantıksal yapılara dönüştürülür.
Disk Bölümleri (Partitions)
Bir fiziksel diskin, işletim sistemi tarafından bağımsız bir depolama birimi olarak algılanacak şekilde mantıksal olarak bölünmüş parçalarıdır. Bir disk üzerinde birden fazla bölüm oluşturulabilir.
* Ana Bölüm (Primary Partition): Bir disk üzerinde oluşturulabilecek maksimum dört ana bölüm vardır. Bu bölümler doğrudan bir dosya sistemi içerebilir.
* Genişletilmiş Bölüm (Extended Partition): Dört ana bölüm sınırlamasını aşmak için kullanılır. Bir genişletilmiş bölüm, içinde birden fazla mantıksal bölüm barındırabilir.
* Mantıksal Bölüm (Logical Partition): Genişletilmiş bir bölümün içinde oluşturulan bölümlerdir.
Dosya Sistemleri (File Systems)
Bölümlenmiş disk alanının, verileri organize etmek ve yönetmek için kullanılan yapıdır. Dosya sistemleri, verileri dosya ve dizinler halinde düzenler, dosya izinlerini yönetir ve veri bütünlüğünü sağlar. Linux’ta yaygın olarak kullanılan dosya sistemleri şunlardır:
* ext4 (Fourth Extended Filesystem): Linux için en yaygın ve olgun dosya sistemlerinden biridir. Kararlılığı, performansı ve özellik seti ile bilinir.
* XFS: Yüksek performanslı ve büyük dosya sistemleri için optimize edilmiş bir dosya sistemidir. Genellikle sunucu ortamlarında tercih edilir.
* Btrfs (B-tree Filesystem): Gelişmiş özellikler sunan, depolama havuzları, anlık görüntüler (snapshots) ve veri bütünlüğü kontrolleri gibi yeteneklere sahip modern bir dosya sistemidir.
* ZFS (Zettabyte File System): Oracle tarafından geliştirilmiş, ancak açık kaynak topluluğunda da popüler olan, gelişmiş veri bütünlüğü, depolama havuzları ve anlık görüntüler sunan bir dosya sistemidir. Linux’ta ZFS kullanımı, lisanslama nedenleriyle bazen ek konfigürasyon gerektirebilir.
* FAT32 ve NTFS: Genellikle Windows ile uyumluluk için kullanılır. FAT32 daha eski ve sınırlı bir dosya sistemiyken, NTFS daha modern ve özellikli bir Windows dosya sistemidir.
Blok Cihazları (Block Devices)
Linux çekirdeği tarafından yönetilen, verileri sabit boyutlu bloklar halinde okuyup yazan aygıtlardır. Disk bölümleri, RAID dizileri ve mantıksal birim yöneticisi (LVM) birimleri gibi tüm depolama aygıtları blok cihazları olarak temsil edilir. /dev dizininde sdX (SATA/SCSI diskler), nvmeXnY (NVMe diskler) gibi isimlerle bulunurlar.
Depolama Yönetimi Araçları ve Kavramları
Linux’ta depolama alanını yönetmek için çeşitli araçlar ve kavramlar mevcuttur.
Montaj Noktaları (Mount Points)
Bir dosya sisteminin, dizin ağacının belirli bir noktasına bağlandığı yerdir. Bir dosya sistemi monte edildiğinde, o dosya sistemindeki veriler, monte edildiği dizin üzerinden erişilebilir hale gelir. Örneğin, /home dizini, genellikle ayrı bir bölüme monte edilmiş bir dosya sistemini temsil eder.
Fstab (File System Table)
/etc/fstab dosyasında bulunan ve sistem başlatıldığında otomatik olarak monte edilecek dosya sistemlerini tanımlayan bir yapılandırma dosyasıdır. Bu dosya, her bir dosya sistemi için aygıt adı, montaj noktası, dosya sistemi türü, montaj seçenekleri ve yedekleme/kontrol parametrelerini içerir.
Genişletilebilir Depolama Yönetimi (LVM – Logical Volume Management)
LVM, depolama alanını daha esnek bir şekilde yönetmeyi sağlayan bir soyutlama katmanıdır. Fiziksel diskleri veya bölümleri bir araya getirerek “Fiziksel Birim Grupları” (Volume Groups – VG) oluşturur. Bu VG’lerden de “Mantıksal Birimler” (Logical Volumes – LV) oluşturulur. Bu yapı, disk boyutunu büyütmeyi, küçültmeyi, anlık görüntüler almayı ve bölümleri yeniden boyutlandırmayı kolaylaştırır.
* Fiziksel Birimler (Physical Volumes – PV): LVM tarafından yönetilebilen fiziksel diskler veya disk bölümleridir.
* Fiziksel Birim Grupları (Volume Groups – VG): Bir veya daha fazla PV’nin bir araya getirilmesiyle oluşturulan havuzlardır.
* Mantıksal Birimler (Logical Volumes – LV): VG’lerden oluşturulan, kullanıcıların dosya sistemi olarak kullanabileceği esnek depolama alanlarıdır.
RAID (Redundant Array of Independent Disks)
RAID, birden fazla diski birleştirerek performans, yedeklilik veya her ikisini birden sağlamak için kullanılır. Linux’ta hem donanım RAID denetleyicileri hem de yazılım RAID (mdadm aracı ile) desteklenir.
* RAID 0 (Striping): Verileri disklere şeritler halinde dağıtır. Performansı artırır ancak yedeklilik sağlamaz. Bir disk arızalanırsa tüm veri kaybolur.
* RAID 1 (Mirroring): Verileri iki veya daha fazla diske kopyalar. Yüksek yedeklilik sağlar ancak depolama alanı verimliliği düşüktür.
* RAID 5: Verileri ve eşlik (parity) bilgilerini birden fazla diske dağıtır. Hem performans hem de yedeklilik sunar. Bir disk arızasına dayanabilir.
* RAID 6: RAID 5’e benzer ancak iki farklı eşlik bloğu kullanarak iki disk arızasına dayanabilir.
* RAID 10 (1+0): RAID 1 ve RAID 0’ın bir kombinasyonudur. Diskleri çiftler halinde aynalar ve ardından bu çiftleri şeritler halinde birleştirir. Yüksek performans ve iyi yedeklilik sunar.
Depolama Havuzları (Storage Pools)
Btrfs ve ZFS gibi modern dosya sistemleri, birden fazla diski tek bir mantıksal havuzda birleştirme yeteneği sunar. Bu havuzlar, veri dağıtımı, hata toleransı ve esneklik açısından geleneksel bölümleme ve LVM’ye göre farklı yaklaşımlar sunar.
Dosya Sistemi Yapısı ve Erişimi
Linux’taki dosya sistemi, bir kök dizin (/) ile başlayan hiyerarşik bir yapıdır.
Kök Dizin (/)
Tüm dosya sistemlerinin başlangıç noktasıdır. Diğer tüm dizinler ve dosyalar bu kök dizinin altında bulunur.
Standart Dizinler
Linux dosya sisteminde belirli işlevlere sahip standart dizinler bulunur:
* /bin: Temel komutlar (binary)
* /sbin: Sistem yönetimi için temel komutlar (super-user binaries)
* /etc: Yapılandırma dosyaları
* /home: Kullanıcı ev dizinleri
* /usr: Kullanıcı uygulamaları ve veri dosyaları
* /var: Değişken veri dosyaları (loglar, önbellekler vb.)
* /tmp: Geçici dosyalar
* /dev: Aygıt dosyaları
* /proc: İşlem ve çekirdek bilgileri (sanal dosya sistemi)
* /sys: Sistem ve aygıt bilgileri (sanal dosya sistemi)
Dosya İzinleri
Linux’ta dosya ve dizinlere erişim, kullanıcı ve grup izinleri ile kontrol edilir. Bu izinler okuma (r), yazma (w) ve çalıştırma (x) olarak üç ana kategoriye ayrılır. Her dosya veya dizin için sahip (owner), grup (group) ve diğerleri (others) için ayrı ayrı bu izinler belirlenir.
* Sahip İzinleri: Dosyanın sahibine ait izinler.
* Grup İzinleri: Dosyanın ait olduğu gruba dahil olan kullanıcılara ait izinler.
* Diğer İzinleri: Ne sahip ne de grubun üyesi olan diğer tüm kullanıcılara ait izinler.
Bu izinler, chmod komutu kullanılarak değiştirilebilir.
Depolama Performansını Etkileyen Faktörler
Depolama performansını etkileyen birçok faktör vardır:
* Cihaz Türü: SSD’ler HDD’lere göre çok daha hızlıdır. NVMe SSD’ler ise standart SATA SSD’lerden bile daha hızlıdır.
* Arayüz: SATA, NVMe (PCIe) gibi arayüzler bant genişliğini belirler.
* Dosya Sistemi: Bazı dosya sistemleri belirli iş yükleri için diğerlerinden daha iyi performans gösterir.
* Disk Yapılandırması: RAID seviyesi, blok boyutu, bölümleme stratejisi gibi faktörler performansı etkiler.
* I/O (Input/Output) İş Yükü: Eşzamanlı okuma/yazma işlemleri, rastgele erişimler gibi faktörler performansı düşürebilir.
* Önbellekleme (Caching): RAM’deki veya diskteki önbellekler okuma/yazma hızlarını önemli ölçüde artırabilir.
Özet ve Sonuç
Linux’ta depolama terminolojisi ve kavramları ilk başta karmaşık görünse de, bu makalede ele alınan temel yapı taşlarını (fiziksel cihazlar, mantıksal yapılar, dosya sistemleri, yönetim araçları) anlamak, Linux sistemlerinizle daha derinlemesine etkileşim kurmanızı sağlar. Fiziksel disklerin nasıl bölümlendiğini, bu bölümlere dosya sistemlerinin nasıl kurulduğunu ve bu dosya sistemlerinin nasıl erişilebilir hale getirildiğini bilmek, sistem yönetimi, sorun giderme ve performans optimizasyonu için kritik öneme sahiptir. LVM ve RAID gibi teknolojiler, depolama alanının esnekliğini ve güvenilirliğini artırmak için güçlü araçlar sunar. Bu temel bilgileri edinerek, Linux depolama dünyasında daha yetkin bir kullanıcı olabilirsiniz.