Linux Depolama Terminolojisi ve Kavramlarına Giriş
Giriş
Linux Depolama Terminolojisi ve Kavramlarına Giriş
Linux, depolama sürücüleri de dahil olmak üzere donanım aygıtlarını yönetmek için sağlam sistemlere ve araçlara sahiptir. Bu makalede, Linux’un bu cihazları nasıl temsil ettiğini ve ham depolamanın sunucuda nasıl kullanılabilir alana dönüştürüldüğünü yüksek düzeyde ele alacağız.
Blok Depolama Nedir?
Blok depolama, Linux çekirdeğinin blok cihazı olarak adlandırdığı şeyin başka bir adıdır. Blok aygıtı, geleneksel dönen sabit disk sürücüsü (HDD), katı hal sürücüsü (SSD), flash bellek çubuğu vb. gibi verileri depolamak için kullanılabilen bir donanım parçasıdır. Blok aygıtı olarak adlandırılır çünkü çekirdek, sabit boyutlu bloklara veya alan parçalarına başvurarak donanımla arayüz oluşturur.
Başka bir deyişle, blok depolama, bir bilgisayarda normal disk depolama olarak düşündüğünüz şeydir. Kurulduktan sonra, mevcut dosya sistemi ağacının bir uzantısı olarak işlev görür ve her sürücüye birbirinin yerine bilgi yazabilmeniz veya okuyabilmeniz gerekir.
Disk Bölümleri nedir?
Disk bölümleri, bir depolama sürücüsünü daha küçük kullanılabilir birimlere bölmenin bir yoludur. Bölüm, bir depolama sürücüsünün, sürücünün kendisiyle hemen hemen aynı şekilde ele alınabilen bir bölümüdür.
Bölümleme, kullanılabilir alanı bölümlere ayırmanıza ve her bölümü farklı bir amaç için kullanmanıza olanak tanır. Bu, kullanıcıya daha fazla esneklik sağlayarak potansiyel olarak tek bir diski birden çok işletim sistemi, takas alanı veya özel dosya sistemleri için bölümlere ayırmasına olanak tanır.
Diskler bölümlenmeden biçimlendirilebilir ve kullanılabilirken, işletim sistemleri diske yazılmış yalnızca tek bir bölüm olsa bile genellikle bir bölüm tablosu bulmayı bekler. Daha fazla esneklik için genellikle yeni sürücülerin bölümlere ayrılması önerilir.
MBR ve GPT karşılaştırması
Bir diski bölümlendirirken, hangi bölümleme biçiminin kullanılacağını bilmek önemlidir. Bu genellikle MBR (Ana Önyükleme Kaydı) ve GPT (GUID Bölümleme Tablosu) arasında bir seçime bağlıdır.
MBR 30 yaşın üzerindedir. Yaşı nedeniyle bazı ciddi sınırlamaları vardır. Örneğin, boyutu 2 TB’ın üzerindeki diskler için kullanılamaz ve en fazla dört birincil bölüme sahip olabilir.
GPT, MBR’nin doğasında bulunan bazı sorunları çözen daha modern bir bölümleme şemasıdır. GPT çalıştıran sistemler, disk başına çok daha fazla bölüme sahip olabilir. Bu genellikle yalnızca işletim sisteminin kendisi tarafından getirilen kısıtlamalarla sınırlıdır. Ek olarak, GPT’de disk boyutu sınırlaması yoktur ve bölüm tablosu bilgileri bozulmaya karşı koruma sağlamak için birden çok konumda mevcuttur. GPT ayrıca yalnızca MBR araçlarıyla uyumluluk için bir “koruyucu MBR” yazabilir.
Çoğu durumda, işletim sisteminiz onu kullanmanızı engellemediği sürece GPT daha iyi bir seçimdir.
Biçimlendirme ve Dosya Sistemleri
Linux çekirdeği bir ham diski tanıyabilse de, kullanılabilmesi için biçimlendirilmesi gerekir. Biçimlendirme, diske bir dosya sistemi yazma ve onu dosya işlemleri için hazırlama işlemidir. Dosya sistemi, verileri yapılandıran ve bilgilerin temel diske nasıl yazıldığını ve diskten nasıl alındığını kontrol eden sistemdir. Bir dosya sistemi olmadan, depolama aygıtını herhangi bir standart dosya sistemi işlemi için kullanamazsınız.
İşletim sistemi desteği de dahil olmak üzere her biri ödünleşimlere sahip birçok farklı dosya sistemi biçimi vardır. Hepsi kullanıcıya diskin benzer bir temsilini sunar, ancak destekledikleri özellikler ve platformlar çok farklı olabilir.
Linux için daha popüler dosya sistemlerinden bazıları şunlardır:
- Ext4: En popüler varsayılan dosya sistemi, Ext2 ve Ext3’ün halefi olan Ext4’tür. Ext4 dosya sistemi günlüklüdür, eski sistemlerle geriye dönük olarak uyumludur, kararlıdır ve olgun destek ve araçlara sahiptir. Özel bir ihtiyacınız yoksa iyi bir seçimdir.
- XFS: XFS, performans ve büyük veri dosyalarında uzmanlaşmıştır. Hızlı bir şekilde biçimlendirilir ve büyük dosyaları işlerken ve büyük disklerle çalışırken iyi aktarım hızı özelliklerine sahiptir. Ayrıca canlı anlık görüntü alma özelliklerine de sahiptir. XFS, hem meta verileri hem de verileri günlüğe kaydetmenin aksine meta veri günlüğü kullanır. Bu, hızlı performansa yol açar, ancak ani bir güç kaybı durumunda potansiyel olarak veri bozulmasına yol açabilir.
- Btrfs: Btrfs, modern, zengin özelliklere sahip bir yazma üzerine kopyalama dosya sistemidir. Bu mimari, anlık görüntüler ve klonlama dahil olmak üzere bazı birim yönetimi işlevlerinin dosya sistemi katmanına entegre edilmesine olanak tanır. Bazı tüketici ve ticari NAS (ağa bağlı depolama) donanımlarında varsayılan olarak kullanılır ve ayrılmış, çok diskli diziler için popülerdir
- ZFS: ZFS, sağlam ve olgun bir özellik setine sahip başka bir yazma üzerine kopyalama dosya sistemi ve birim yöneticisidir. Btrfs ile oldukça doğrudan rekabet eder, veri bütünlüğü özelliklerine sahiptir, büyük dosya sistemi boyutlarını işleyebilir, anlık görüntü alma ve klonlama gibi tipik birim özelliklerine sahiptir ve yedeklilik ve performans amacıyla birimleri RAID ve RAID benzeri diziler halinde düzenleyebilir. ZFS, lisans endişeleri nedeniyle tartışmalı bir geçmişe sahiptir, ancak ticari destek dikkate alındığında Btrfs’den çok daha fazla veya daha az popüler değildir.
Ek olarak, Windows öncelikle *NTFS ve ExFAT’ı kullanır ve macOS öncelikle HFS+ ve APFS’yi kullanır. Bu dosya sistemi biçimlerini farklı platformlarda okumak ve bazen yazmak genellikle mümkündür, ancak ek uyumluluk araçları gerektirebilir.
Linux Depolama Cihazlarını Nasıl Yönetir?
/dev içindeki Aygıt Dosyaları
Linux’ta hemen hemen her şey dosya sistemi hiyerarşisinde bir yerde bir dosya ile temsil edilir. Bu, sistemde dizindeki dosyalar olarak temsil edilen depolama sürücüleri gibi donanımları içerir. Genellikle, depolama aygıtlarını temsil eden dosyalar bir harfle başlar veya bir harfle devam eder. Örneğin, bir sunucudaki ilk sürücü genellikle /dev/sda
Bu sürücülerdeki bölümlerde ayrıca , bölüm numarasının sürücü adının sonuna eklenmesiyle temsil edilen dosyalar da bulunur. Örneğin, önceki örnekte sürücüdeki ilk bölüm /dev/sda1
ve aygıt dosyaları, sürücülere ve bölümlere başvurmanın geleneksel yolunu temsil etse de, bu değerleri tek başına kullanmanın önemli bir dezavantajı vardır. Linux çekirdeği, her önyüklemede hangi cihazın hangi adı alacağına karar verir, bu nedenle bu, cihazlarınızın cihaz düğümlerini değiştirdiği kafa karıştırıcı senaryolara yol açabilir /dev/sd* /dev/hd*
Bu soruna geçici bir çözüm bulmak için, dizin, sistemdeki diskleri ve bölümleri tanımlamanın farklı, daha kalıcı yollarına karşılık gelen alt dizinler içerir. Bunlar, önyükleme sırasında doğru dosyalara geri oluşturulan sembolik bağlantılar içerir. Bağlantılar, dizinin tanımlayıcı özelliğine göre adlandırılır (örneğin, dizinin bölüm etiketine göre). Bu bağlantılar her zaman doğru cihazlara işaret eder, böylece depolama alanları için statik tanımlayıcılar olarak kullanılabilirler./dev/disk, /dev/[sh]da*, /dev/disk/by-partlabel
Aşağıdaki alt dizinlerin bazıları veya tümü şu şekilde bulunabilir:/dev/disk
by-label
: Çoğu dosya sistemi, bir disk veya bölüm için kullanıcı tarafından belirlenen rastgele adların atanmasına izin veren bir etiketleme mekanizmasına sahiptir. Bu dizin, kullanıcı tarafından sağlanan bu etiketlerden sonra adlandırılan bağlantılardan oluşur.by-uuid
: UUID’ler veya evrensel olarak benzersiz tanımlayıcılar, bir depolama kaynağı için kimlik olarak kullanılabilen uzun, benzersiz bir harf ve sayı dizisidir. Bunlar genellikle insan tarafından okunamaz, ancak sistemler arasında bile neredeyse her zaman benzersizdir. Bu nedenle, adlandırma çakışmaları daha az olası olduğundan, sistemler arasında geçiş yapabilecek depolamaya başvurmak için UUID’leri kullanmak iyi bir fikir olabilir.by-partlabel
ve : GPT tabloları, tanımlama için de kullanılabilen kendi etiket ve UUID setlerini sunar. Bu, önceki iki dizinle hemen hemen aynı şekilde çalışır, ancak GPT’ye özgü tanımlayıcıları kullanır.by-id
: Bu dizin, donanımın kendi seri numaraları ve bağlı oldukları donanım tarafından oluşturulan bağlantıları içerir. Bu tamamen kalıcı değildir, çünkü cihazın sisteme bağlanma şekli adını değiştirebilir.by-path
: Gibi, bu dizin bir depolama aygıtının sistemin kendisiyle olan bağlantısına dayanır. Buradaki bağlantılar, sisteme erişmek için kullanılan donanımın sistem tarafından yorumlanması kullanılarak oluşturulmuştur. Bu, bir cihazı farklı bir bağlantı noktasına bağlamanın bu değeri değiştirebilmesiyle aynı dezavantajlara sahiptir.
Genellikle veya belirli cihazların kalıcı olarak tanımlanması için en iyi seçeneklerdir. by-label, by-uuid
Montaj Bloğu Cihazları
Linux ve diğer Unix benzeri işletim sistemlerinde, kaç tane fiziksel cihaz olduğuna bakılmaksızın tüm sistem tek bir birleşik dosya ağacı ile temsil edilir. Bir sürücü veya bölümdeki bir dosya sistemi kullanılacaksa, mevcut ağaca bağlanmalıdır. Bağlama, biçimlendirilmiş bir bölümü veya sürücüyü Linux dosya sistemi içindeki bir dizine ekleme işlemidir. Sürücünün içeriğine daha sonra bu dizinden erişilebilir.
Sürücüler neredeyse her zaman ayrılmış boş dizinlere bağlanır – boş olmayan bir dizine bağlamak, dizinin normal içeriğine sürücü bağlantısı kesilene kadar erişilemeyeceği anlamına gelir). Monte edilmiş bir cihazın davranışını değiştirmek için ayarlanabilecek birçok farklı montaj seçeneği vardır. Örneğin, içeriğinin değiştirilmemesini sağlamak için sürücü salt okunur modda monte edilebilir.
Dosya Sistemi Hiyerarşi Standardı, geçici olarak bağlanan dosya sistemleri için altında bir alt dizin kullanılmasını önerir. Daha kalıcı depolamanın nereye monte edileceği konusunda hiçbir öneride bulunmaz, böylece istediğiniz şemayı seçebilirsiniz. Çoğu durumda, veya alt dizinler daha kalıcı depolama için de kullanılır
/etc/fstab ile Montajları Kalıcı Hale Getirme
Linux sistemleri, önyükleme işlemi sırasında hangi dosya sistemlerinin bağlanacağını belirlemek için (dosya sistemi tablosu) adlı bir dosya kullanır. Bu dosyada girişi olmayan dosya sistemleri, başka bir yazılım tarafından komut dosyası oluşturulmadığı sürece otomatik olarak bağlanmaz./etc/fstab
Dosyanın her satırı, bağlanması gereken farklı bir dosya sistemini temsil eder. Bu satır, blok aygıtını, eklenecek bağlama noktasını, sürücünün biçimini ve bağlama seçeneklerini ve diğer birkaç bilgiyi belirtir./etc/fstab
Daha Karmaşık Depolama Yönetimi
Birçok kullanım durumu bu temel özellikler tarafından karşılanacak olsa da, birden çok diski, özellikle de RAID’i bir araya getirmek için daha karmaşık yönetim paradigmaları vardır.
RAID nedir?
RAID, redundant array of inindependent disks anlamına gelir. RAID, sürücüleri birlikte gruplandırmanıza ve bunları ek yeteneklerle tek bir birim olarak yönetmenize olanak tanıyan bir depolama yönetimi ve sanallaştırma teknolojisidir.
Bir RAID dizisinin özellikleri, dizideki disklerin birbirleriyle nasıl ilişkili olduğunu tanımlayan RAID düzeyine bağlıdır. Daha yaygın seviyelerden bazıları şunlardır:
RAID 0
Bu düzey sürücü şeritlemeyi gösterir. Bu, veriler diziye yazılırken, kümedeki diskler arasında doğrusal olarak bölündüğü ve dağıtıldığı anlamına gelir. Bu, birden fazla diske aynı anda yazılabildiği veya okunabildiği için performans artışı sağlar.
Dezavantajı, tek bir sürücü arızasının tüm dizideki tüm verileri kaybedebilmesidir, çünkü hiçbir disk yeniden oluşturulacak içerik hakkında yeterli bilgi içermez. RAID 0 genellikle bu nedenle üretimde hiç kullanılmaz, ancak bir karşılaştırma noktası olarak yararlı olabilir.
RAID 1
RAID 1, sürücü yansıtmayı gösterir. RAID 1 dizisine yazılan her şey birden çok diske yazılır.
Başlıca avantajı, verilerin aynanın her iki tarafında sabit disk kaybından kurtulmasını sağlayan veri yedekliliğidir.
Birden fazla sürücü tam olarak aynı verileri içereceğinden, kullanılabilir kapasiteniz en az yarı yarıya azalır.
RAID 5
RAID 5, RAID 0’a benzer şekilde verileri birden çok sürücüde şeritler. Bununla birlikte, bu düzey aynı zamanda sürücüler arasında dağıtılmış bir eşlik uygular. Bu, bir sürücü arızalanırsa, kalan sürücülerin aralarında paylaşılan eşlik bilgilerini kullanarak diziyi yeniden oluşturabileceği anlamına gelir.
Genellikle bu, bir diski yeniden oluşturmak için yeterlidir, yani dizi herhangi bir disk kaybından kurtulabilir. RAID 5, bir dizideki kullanılabilir alanı bir diskin kapasitesi kadar azaltır.
RAID 6
RAID 6, RAID 5 ile aynı özelliklere sahiptir, ancak çift eşlik sağlar.
Bu, RAID 6 dizilerinin herhangi bir 2 sürücünün kaybına dayanabileceği anlamına gelir.
Dizinin kapasitesi yine eşlik miktarından etkilenir, yani kullanılabilir kapasite iki disk değerinde alan kadar azalır. Mesela toplamda 6 adet 4 TB’lık disk kullanıyorsanız, 2 disk eksik olarak toplam kapasite: 4×4 TB yani 16 TB olarak hesaplanır.
RAID 10
RAID 10, 1 ve 0 seviyelerinin bir kombinasyonudur. İlk olarak, iki set yansıtılmış dizi yapılır.
Ardından, veriler bunlar arasında şeritlenir. Bu, iyi performans sağlarken bazı yedeklilik özelliklerine sahip bir dizi oluşturur.
Ancak bu, oldukça az sayıda sürücü gerektirir ve toplam kapasite hala birleşik disk alanının yarısından daha azdır.
Bundan Sonra Nereye Gitmeli?
Bu yazımızı beğendiyseniz benzer konuda aşağıdaki yazılarımıza da göz atabilirsiniz:
Sudo’yu nasıl yapılandıracağınız hakkında daha fazla bilgi için, Sudoers Dosyasını Nasıl Düzenlerim | Narweb.net Blog.
Ayrıca sitemizde daha önce Docker konusu ile ilgili yazılmış bu yazılar da ilginizi çekebilir:
Docker Nedir? Ve NARWEB’den Aldığım Sunucuma Nasıl Kurabilirim? | Narweb.net Blog
Heroku Alternatifi PaaS Çözümü “Dokku” Nedir, Nasıl Kurulur Ve Nasıl Kullanılır? | Narweb.net Blog
Basit Bir Şekilde Kubernetes Cluster Oluşturma Rehberi | Narweb.net Blog
Portainer Nedir Ve Nasıl Kurulur? Docker Yönetimini Kolaylaştıran Arayüz | Narweb.net Blog
Web hosting ihtiyaçlarınız için Narweb web hosting paketlerine göz atabilirsiniz: Linux Hosting | Uygun Fiyat ve Yüksek Hızlı Enterprise SSD Hosting | Narweb
Sunucu ihtiyaçlarınız için Narweb VDS paketlerimize göz atabilirsiniz: VDS Sunucu | Enterprise SSD Dedicated Sanal Sunucu Yüksek Performans | Narweb
Ayrıca sitemizde daha önce yayınladığımız bu yazılar da dikkatinizi çekebilir:
Ubuntu Linux: Kapsamlı Bir Giriş | Narweb.net Blog
Ubuntu 20.04 Sunucu Kurulduktan Sonra Ilk Yapılması Gerekenler | Narweb.net Blog
Ubuntu 20.04 üzerine Plesk Hosting Kontrol Paneli Kurulumu Nasıl Yapılır? | Narweb.net Blog
En Çok Kullanılan 20 Linux Komutu Ve örnekleri | Narweb.net Blog
Ubuntu 20.04’te SSH Keys (Anahtarları) Nasıl Oluşturulur Ve Kullanılır? | Narweb.net Blog
SSH Temelleri: SSH Sunucuları, İstemcileri Ve Anahtarlarla Çalışma | Narweb.net Blog