Takip et

Linux’ta Depolama Aygıtları İçin Temel Yönetim Görevleri Nasıl Yapılır?

Linux’ta Depolama Aygıtları İçin Temel Yönetim Görevleri Nasıl Yapılır? Linux sunucular ve iş istasyonları için depolama yönetimi, siste

Linux’ta Depolama Aygıtları İçin Temel Yönetim Görevleri Nasıl Yapılır?

Linux sunucular ve iş istasyonları için depolama yönetimi, sistem stabilitesi, performansı ve veri güvenliği açısından kritik bir öneme sahiptir. Dosya sistemlerini oluşturmaktan, diskleri bölümlendirmeye, depolama alanını izlemeye ve sorun gidermeye kadar bir dizi temel görevi kapsar. Bu makale, Linux ortamında depolama aygıtlarıyla ilgili en yaygın yönetim görevlerini adım adım açıklamayı ve her bir görevi yerine getirmek için gerekli komutları ve en iyi uygulamaları sunmayı amaçlamaktadır. Yeni bir disk eklemekten mevcut depolama altyapısını optimize etmeye kadar, bu kılavuz size Linux’taki depolama yönetimi dünyasında sağlam bir temel sağlayacaktır.

Depolama Aygıtlarını Tanımlama ve Listeleme

Linux sisteminizdeki depolama aygıtlarını yönetmeye başlamadan önce, mevcut diskleri ve bölümlerini doğru bir şekilde tanımlamak esastır. Linux, bu bilgiyi sağlamak için çeşitli güçlü komutlar sunar.

lsblk Komutu

lsblk (list block devices) komutu, bağlı tüm blok aygıtlarını (sabit diskler, SSD’ler, USB sürücüler vb.) ve bunların bölümlerini hiyerarşik bir ağaç yapısında görüntüler. Bu, aygıtların fiziksel yapısını anlamak için oldukça kullanışlıdır.

lsblk

Çıktı, her aygıtın adını (NAME), ana ve ikincil aygıt numaralarını (MAJ:MIN), çıkarılabilir olup olmadığını (RM), boyutunu (SIZE), salt okunur olup olmadığını (RO), türünü (TYPE) ve bağlama noktasını (MOUNTPOINT) gösterir. lsblk -f veya lsblk -o NAME,FSTYPE,SIZE,MOMOUNTPOINT,UUID gibi seçeneklerle dosya sistemi türü (FSTYPE), UUID gibi ek bilgiler de elde edilebilir.

fdisk -l ve sfdisk -l Komutları

fdisk ve sfdisk, disk bölümleme tablolarını yönetmek için kullanılan araçlardır. -l seçeneği ile disk üzerindeki mevcut bölüm tablolarını listelerler. fdisk genellikle MBR (Master Boot Record) tabanlı diskler için tercih edilirken, GPT (GUID Partition Table) diskler için de bilgi gösterebilir.

sudo fdisk -l

Bu komut, sistemdeki tüm diskler için bölüm bilgilerini, disk boyutunu, sektör boyutunu ve bölüm türlerini gösterir. sfdisk -l ise benzer ancak daha makine okunabilir bir çıktı sunar ve bazen daha detaylı geometrik bilgiler sağlayabilir.

parted -l Komutu

parted komutu, hem MBR hem de GPT bölümleme tablolarını destekleyen daha modern bir disk bölümleme aracıdır. -l seçeneği ile sistemdeki tüm disklerin bölümleme şemasını ve boyutlarını listeler.

sudo parted -l

parted, diskin modelini, boyutunu, bölümleme tablosu türünü (msdos/gpt) ve her bir bölümün başlangıç/bitiş noktalarını, boyutunu ve dosya sistemi türünü gösterir.

df -h Komutu

df (disk free) komutu, bağlama noktaları üzerinden dosya sistemlerinin disk alanı kullanımını gösterir. -h seçeneği, çıktıları insanlar tarafından daha kolay okunabilir (örneğin, GB, MB cinsinden) hale getirir.

df -h

Bu komut, her bağlama noktası için toplam boyutu, kullanılan alanı, boş alanı, kullanım yüzdesini ve bağlama noktasını gösterir. Fiziksel disklerin kendisi yerine, dosya sistemlerinin ne kadar yer kapladığını anlamak için idealdir.

mount Komutu

Bağlı dosya sistemlerini listelemek için sadece mount komutunu parametresiz çalıştırmak yeterlidir. Bu komut, hangi aygıtın nereye ve hangi seçeneklerle bağlı olduğunu gösterir.

mount

Bu komut, sistemdeki tüm bağlı dosya sistemlerini, bunların türlerini ve bağlama seçeneklerini detaylı bir şekilde listeler.

/proc/partitions Dosyası

Linux çekirdeği, /proc/partitions dosyasında sistemdeki tüm blok aygıtları ve bölümleri hakkında ham bilgi tutar. Bu dosya doğrudan okunabilir.

cat /proc/partitions

Çıktı, her bölümün ana ve ikincil numarasını, blok sayısını ve adını gösterir. Bu, daha düşük seviyeli bir bakış açısı sunar.

/dev/disk/by-* Dizinleri

Linux, disk aygıtlarına erişmek için çeşitli sembolik bağlantılar sağlar. Bu bağlantılar, aygıtların sabit isimler yerine daha kalıcı tanımlayıcılar kullanılarak erişilmesini sağlar.

* /dev/disk/by-id: Donanım kimliğine göre (üretici, model, seri numarası).
* /dev/disk/by-uuid: Dosya sisteminin benzersiz evrensel kimliğine göre (UUID). Özellikle /etc/fstab içinde çok kullanılır.
* /dev/disk/by-path: Fiziksel bağlantı yoluna göre.
* /dev/disk/by-label: Dosya sistemine verilen etikete göre.

Bu dizinleri listelemek, özellikle bir diskin fiziksel yolu veya adı değiştiğinde faydalıdır:

ls -l /dev/disk/by-uuid/
ls -l /dev/disk/by-label/

Bu komutlar, her bir UUID veya etiketin hangi /dev/sdX aygıtına işaret ettiğini gösterir, bu da özellikle /etc/fstab dosyasını düzenlerken veya belirli bir diski tanımlarken çok önemlidir.

Disk Bölümleme (Partitioning)

Disk bölümleme, bir depolama aygıtını mantıksal olarak birden fazla parçaya ayırma işlemidir. Her bölüm, ayrı bir depolama birimi gibi davranabilir ve farklı bir dosya sistemi barındırabilir.

Neden Bölümleme Yapılır?

* Veri Organizasyonu: İşletim sistemi dosyaları, kullanıcı verileri ve uygulama verilerini ayrı bölümlerde tutarak daha iyi organizasyon sağlanır.
* Güvenlik ve İzolasyon: Bir bölümdeki bozulma veya güvenlik açığı diğer bölümleri etkilemeyebilir.
* Esneklik: Farklı bölümler için farklı dosya sistemleri (ext4, XFS, Btrfs vb.) kullanılabilir.
* Performans: Bazı durumlarda, belirli verilere hızlı erişim sağlamak için disklerin belirli bölgeleri ayrılabilir.
* Yedekleme ve Geri Yükleme: Sadece belirli bölümlerin yedeklenmesi veya geri yüklenmesi kolaylaşır.

MBR vs. GPT

İki ana bölümleme tablosu standardı vardır:

* MBR (Master Boot Record): Daha eski bir standarttır. Maksimum 2 TB disk boyutunu destekler ve en fazla 4 birincil bölüm veya 3 birincil + 1 genişletilmiş bölüm (mantıksal bölümler içerebilir) oluşturulmasına izin verir.
* GPT (GUID Partition Table): Daha yeni ve modern bir standarttır. 2 TB’tan büyük diskleri destekler ve teorik olarak sınırsız sayıda bölüm oluşturmaya izin verir (çoğu işletim sistemi 128 bölümü destekler). UEFI sistemlerle daha iyi uyum sağlar.

fdisk ile Disk Bölümleme (MBR İçin)

fdisk, MBR bölümleme tablolarını yönetmek için kullanılan etkileşimli bir araçtır. DİKKAT: Yanlış kullanıldığında veri kaybına neden olabilir. İşlem yapmadan önce verilerinizi yedekleyin.

Yeni bir disk (/dev/sdb varsayalım) üzerinde işlem yapmak için:

sudo fdisk /dev/sdb

fdisk etkileşimli moda girdiğinde, aşağıdaki komutları kullanabilirsiniz:

* m: Yardım menüsünü gösterir.
* p: Mevcut bölüm tablosunu yazdırır.
* n: Yeni bir bölüm oluşturur. (Birincil/Genişletilmiş seçimi, bölüm numarası, başlangıç/bitiş sektörü)
* d: Mevcut bir bölümü siler.
* t: Bir bölümün türünü değiştirir (örneğin, Linux takas alanı için 82).
* w: Değişiklikleri diske yazar ve çıkar.
* q: Değişiklikleri yazmadan çıkar.

Yeni bir bölüm oluşturma adımları:
1. n (new partition)
2. p (primary partition) veya e (extended partition)
3. Bölüm numarasını girin (1-4 arası).
4. İlk sektörü girin (varsayılan genellikle en uygunudur).
5. Son sektörü veya boyutu girin (örneğin, +10G 10 GB’lık bir bölüm oluşturur).
6. w (write changes) ile değişiklikleri kaydedin.

Değişikliklerin sistem tarafından algılanması için bazen partprobe komutunu çalıştırmak veya sistemi yeniden başlatmak gerekebilir.

sudo partprobe /dev/sdb

gdisk ile Disk Bölümleme (GPT İçin)

gdisk, fdisk‘in GPT diskler için olan karşılığıdır. Kullanımı fdisk‘e oldukça benzerdir.

sudo gdisk /dev/sdb

gdisk komutları:

* ?: Yardım menüsünü gösterir.
* p: Mevcut bölüm tablosunu yazdırır.
* n: Yeni bir bölüm oluşturur.
* d: Mevcut bir bölümü siler.
* t: Bir bölümün GUID türünü değiştirir.
* w: Değişiklikleri diske yazar ve çıkar.
* q: Değişiklikleri yazmadan çıkar.

parted ile Disk Bölümleme

parted, hem MBR hem de GPT diskler üzerinde çalışabilen esnek bir araçtır ve etkileşimli veya komut satırı modunda kullanılabilir.

Yeni bir diski GPT olarak bölümlendirmek için:

sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary ext4 0% 100%
sudo parted /dev/sdb print

Bu komutlar, /dev/sdb diskini GPT olarak etiketler ve tüm diski kaplayan tek bir birincil ext4 bölümü oluşturur. mkpart komutunda dosya sistemi türü (ext4) belirtilse de, bu sadece parted‘e bir ipucu verir; dosya sistemini daha sonra mkfs ile oluşturmanız gerekir.

Dosya Sistemleri Oluşturma (Formatting)

Bir diski veya bölümü kullanabilmek için üzerinde bir dosya sistemi oluşturulması gerekir. Bu işlem genellikle “biçimlendirme” (formatting) olarak adlandırılır.

Dosya Sistemi Nedir?

Dosya sistemi, işletim sisteminin disk üzerindeki dosyaları nasıl düzenleyeceğini ve depolayacağını belirleyen bir yapıdır. Her dosya sistemi, dosyaların adlandırılması, boyutları, izinleri, konumları ve diğer meta verileri için belirli kurallar ve algoritmalar kullanır.

Linux’ta yaygın dosya sistemleri:

* ext4: Linux’ta varsayılan ve en yaygın kullanılan dosya sistemidir. Günlüklü (journaling) bir dosya sistemidir, bu da sistem çökmelerinden sonra veri bütünlüğünü korumaya yardımcı olur.
* XFS: Büyük dosyalar ve yüksek performans gerektiren iş yükleri için tasarlanmıştır. Özellikle büyük depolama sistemlerinde tercih edilir.
* Btrfs: Gelişmiş özelliklere sahip (anlık görüntüler, veri bütünlüğü kontrolü, havuzlama) modern bir dosya sistemidir.
* FAT32/NTFS: Genellikle Windows sistemleriyle uyumluluk için kullanılır.

mkfs Komutu

mkfs (make filesystem) komutu, belirtilen bir bölüm üzerinde bir dosya sistemi oluşturmak için kullanılır. mkfs aslında mkfs.ext4, mkfs.xfs gibi belirli dosya sistemi oluşturma araçlarına bir ön yüzdür.

Bir bölümü (/dev/sdb1 varsayalım) ext4 dosya sistemi ile biçimlendirmek için:

sudo mkfs.ext4 /dev/sdb1

Bu komut, /dev/sdb1 üzerinde bir ext4 dosya sistemi oluşturur. İşlem sırasında, dosya sistemi için süperblok, inode tabloları ve diğer meta veri yapıları oluşturulur.

Yaygın mkfs Seçenekleri:

* -L : Dosya sistemine bir etiket (label) atar. Bu etiket, /etc/fstab içinde veya lsblk çıktısında kullanılabilir.

sudo mkfs.ext4 -L MyDataDisk /dev/sdb1

* -b : Blok boyutunu ayarlar (örneğin, 4096 bayt).
* -i : Her inode için ayrılan bayt sayısını belirler. Daha küçük değerler, daha fazla küçük dosya depolamak için daha fazla inode oluşturur.
* -O : Belirli dosya sistemi özelliklerini etkinleştirir veya devre dışı bırakır (örneğin, ^has_journal günlüğe kaydetmeyi devre dışı bırakır).

Diğer Dosya Sistemleri İçin:

* XFS:

sudo mkfs.xfs -L MyXFSDisk /dev/sdb1

* Btrfs:

sudo mkfs.btrfs -L MyBtrfsDisk /dev/sdb1

* FAT32 (VFAT):

sudo mkfs.vfat -F 32 -n MyFAT32Disk /dev/sdb1

Biçimlendirme işlemi tamamlandıktan sonra, bölüm kullanıma hazırdır ancak önce bir bağlama noktasına bağlanması gerekir.

Depolama Aygıtlarını Bağlama ve Ayırma (Mounting/Unmounting)

Bir dosya sistemi oluşturulduktan sonra, Linux sisteminizde erişilebilir hale gelmesi için bir dizine “bağlanması” (mount) gerekir. Bu dizin, “bağlama noktası” olarak adlandırılır.

mount Komutu (Geçici Bağlama)

mount komutu, bir dosya sistemini manuel olarak bir bağlama noktasına bağlamak için kullanılır. Bu bağlama, sistem yeniden başlatıldığında kaybolur.

Önce bir bağlama noktası dizini oluşturun:

sudo mkdir /mnt/data

Ardından, bölümü bağlayın:

sudo mount /dev/sdb1 /mnt/data

* /dev/sdb1: Bağlanacak aygıt (disk bölümü).
* /mnt/data: Bağlama noktası (boş bir dizin olmalıdır).

Bağlama işlemi başarılı olursa, df -h veya mount komutlarıyla kontrol edebilirsiniz.

Yaygın mount Seçenekleri:

* -o : Bağlama seçeneklerini belirtir.
* ro: Salt okunur (read-only).
* rw: Okuma/yazma (read-write).
* defaults: Çoğu dosya sistemi için varsayılan seçenekleri kullanır (rw, suid, dev, exec, auto, nouser, async).
* noauto: Sistemin başlangıcında otomatik olarak bağlanmaz (genellikle /etc/fstab için).
* user: Herhangi bir kullanıcının bağlamasına izin verir.
* nouser: Sadece root kullanıcısının bağlamasına izin verir.
* exec: Çalıştırılabilir dosyaların yürütülmesine izin verir.
* noexec: Çalıştırılabilir dosyaların yürütülmesini engeller.
* sync: Tüm yazma işlemlerinin senkronize olmasını sağlar.
* async: Yazma işlemlerini asenkron yapar (varsayılan).
* relatime / noatime: Dosya erişim zamanlarının güncellenmesini kontrol eder. noatime performans için iyidir.

Örnek: Salt okunur ve belirli bir dosya sistemi türüyle bağlama:

sudo mount -t ext4 -o ro /dev/sdb1 /mnt/data

umount Komutu

Bir dosya sistemini ayırmak (unmount) için umount komutu kullanılır. Bir dosya sistemi ayrılmadan, fiziksel disk güvenli bir şekilde çıkarılamaz.

sudo umount /mnt/data

veya aygıt yoluyla:

sudo umount /dev/sdb1

Eğer dosya sistemi kullanımda ise (örneğin, bir kullanıcı o dizinde ise), umount başarısız olur. Bu durumda, lsof /mnt/data komutu ile hangi süreçlerin bağlama noktasını kullandığını bulup sonlandırabilir veya -l (lazy unmount) seçeneğini kullanabilirsiniz:

sudo umount -l /mnt/data

Bu, dosya sistemini hemen ayırır ancak kullanan uygulamaların referansları bitene kadar temizleme işlemini erteler.

/etc/fstab Dosyası (Kalıcı Bağlama)

Sistemin her başlangıcında belirli dosya sistemlerinin otomatik olarak bağlanmasını sağlamak için /etc/fstab (file system table) dosyası kullanılır. Bu dosya, bağlama bilgilerini kalıcı olarak depolar.

Her satır altı alanı temsil eder:

1. Aygıt: Bağlanacak aygıtın yolu (örneğin, /dev/sdb1), UUID’si veya etiketi. UUID ve LABEL kullanmak, aygıt adı değişse bile (örneğin, /dev/sdb yerine /dev/sdc olması) bağlamanın doğru çalışmasını sağlar.
2. Bağlama Noktası: Dosya sisteminin bağlanacağı dizin.
3. Dosya Sistemi Türü: Dosya sisteminin türü (ext4, xfs, btrfs, swap vb.).
4. Seçenekler: Bağlama seçenekleri (defaults, noauto, ro, rw, noexec, noatime vb.).
5. Dump: dump komutunun bu dosya sistemini yedeklemesi gerekip gerekmediğini belirtir (0: hayır, 1: evet). Çoğu modern sistemde bu alan 0 olarak ayarlanır.
6. Pass: fsck komutunun başlangıçta bu dosya sistemini kontrol etme sırasını belirler (0: kontrol etme, 1: root dosya sistemi, 2: diğer dosya sistemleri).

Örnek /etc/fstab girdisi (UUID ile):

Önce aygıtın UUID’sini bulun:

sudo blkid /dev/sdb1

Çıktıdan UUID’yi kopyalayın. Ardından /etc/fstab dosyasını düzenleyin:

sudo nano /etc/fstab

Dosyaya aşağıdaki gibi bir satır ekleyin:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/data ext4 defaults 0 2

Örnek /etc/fstab girdisi (LABEL ile):

LABEL=MyDataDisk /mnt/data ext4 defaults 0 2

/etc/fstab ile İlgili Sorun Giderme:

/etc/fstab dosyasında yapılan yanlış bir giriş, sistemin önyükleme yapamamasına neden olabilir. Değişiklik yaptıktan sonra, sistemi yeniden başlatmadan önce sudo mount -a komutunu çalıştırarak tüm girişlerin doğru olup olmadığını kontrol etmek iyi bir uygulamadır. Bu komut, /etc/fstab‘daki tüm girdileri (zaten bağlı olanlar hariç) bağlamaya çalışır. Herhangi bir hata durumunda, hata mesajı alırsınız ve hatayı düzeltebilirsiniz.

Eğer sistem yanlış bir /etc/fstab girişi yüzünden önyükleme yapamazsa, genellikle kurtarma moduna (recovery mode) geçip dosyayı düzeltebilirsiniz.

Takas Alanı (Swap Space) Yönetimi

Takas alanı (swap space), fiziksel RAM’in (bellek) yetersiz kaldığı durumlarda, işletim sisteminin kullanılmayan bellek sayfalarını depolamak için kullandığı bir disk alanıdır. Bu, sistemin daha fazla program çalıştırmasına veya daha büyük dosyaları işlemesine olanak tanır, ancak disk tabanlı olduğu için RAM’den çok daha yavaştır.

Takas Alanı Neden Kullanılır?

* Bellek Genişletme: Fiziksel RAM dolduğunda, az kullanılan bellek sayfaları takas alanına taşınır.
* Sistem Kararlılığı: Bellek yetersizliği durumunda sistemin çökmesini önler.
* Hazırda Bekletme (Hibernation): Sistem hazırda bekletme moduna geçtiğinde, RAM içeriği takas alanına yazılır.

Takas Bölümü Oluşturma

Daha önce fdisk veya gdisk ile bir bölüm oluştururken, bölüm türünü takas alanı olarak ayarlayabilirsiniz (MBR için 82, GPT için Linux swap).

Yeni bir bölüm oluşturduktan sonra, onu takas alanı olarak biçimlendirin:

sudo mkswap /dev/sdb2

Ardından, takas alanını etkinleştirin:

sudo swapon /dev/sdb2

Kalıcı hale getirmek için /etc/fstab dosyasına ekleyin:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap sw 0 0

Takas Dosyası Oluşturma

Fiziksel bir bölüm ayırmak yerine bir dosya kullanarak da takas alanı oluşturabilirsiniz. Bu, mevcut bir diskte boş alan varken hızlıca takas alanı eklemek için kullanışlıdır.

1. Bir takas dosyası oluşturun (örneğin, 4 GB):

sudo fallocate -l 4G /swapfile
    # veya
    # sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

2. Dosya izinlerini ayarlayın (sadece root okuyabilir/yazabilir):

sudo chmod 600 /swapfile

3. Dosyayı takas alanı olarak biçimlendirin:

sudo mkswap /swapfile

4. Takas dosyasını etkinleştirin:

sudo swapon /swapfile

5. Kalıcı hale getirmek için /etc/fstab‘a ekleyin:

/swapfile none swap sw 0 0

Takas Alanını Kontrol Etme

Takas alanının durumunu kontrol etmek için:

swapon -s

veya

free -h

free -h komutu, kullanılan ve boş olan RAM ve takas alanını gösterir.

Takas Alanını Devre Dışı Bırakma

Bir takas bölümünü veya dosyasını devre dışı bırakmak için:

sudo swapoff /dev/sdb2

veya

sudo swapoff /swapfile

/etc/fstab‘dan ilgili satırı kaldırmayı unutmayın.

Disk Alanı Kullanımını İzleme

Disk alanı kullanımını düzenli olarak izlemek, depolama sorunlarını önlemek ve sistem performansını sürdürmek için önemlidir.

df -h Komutu

Daha önce bahsedildiği gibi, df -h dosya sistemlerinin toplam, kullanılan ve boş alanını gösterir.

df -h

du -sh /path Komutu

du (disk usage) komutu, belirli bir dizin veya dosya tarafından ne kadar disk alanının kullanıldığını gösterir. -s (summarize) ve -h (human-readable) seçenekleri genellikle birlikte kullanılır.

sudo du -sh /home/kullaniciadi/Belgeler
sudo du -sh /var/log

Belirli bir dizindeki tüm alt dizinlerin boyutlarını listelemek için:

sudo du -h --max-depth=1 /var/log

ncdu Komutu (İsteğe Bağlı)

ncdu (NCurses Disk Usage), disk kullanımını etkileşimli ve grafiksel bir arayüzde gösteren kullanışlı bir araçtır. Genellikle varsayılan olarak yüklü değildir ve yüklenmesi gerekebilir:

sudo apt install ncdu   # Debian/Ubuntu
sudo yum install ncdu   # CentOS/RHEL

Ardından, bir dizinin disk kullanımını analiz etmek için:

sudo ncdu /

ncdu, hangi dizinlerin en çok yer kapladığını görsel olarak anlamanıza yardımcı olur.

Depolama Performansını İzleme

Depolama performansını anlamak ve sorun gidermek, disklerin yavaşlamasına neden olan darboğazları belirlemek için önemlidir.

iostat Komutu

iostat komutu, CPU kullanım istatistiklerini ve I/O (giriş/çıkış) aygıtlarının performansını raporlar. sysstat paketinin bir parçasıdır.

sudo apt install sysstat # Debian/Ubuntu
sudo yum install sysstat # CentOS/RHEL

iostat komutunu çalıştırmak:

iostat -x 1 5

* -x: Genişletilmiş istatistikleri gösterir.
* 1: Her 1 saniyede bir rapor günceller.
* 5: Toplam 5 rapor gösterir.

Çıktı, disk başına okuma/yazma hızlarını (r/s, w/s), okuma/yazma bloklarını (rkB/s, wkB/s), ortalama bekleme süresini (await), hizmet süresini (svctm) ve I/O işlemleriyle meşgul olma yüzdesini (%util) gösterir. %util değeri %70-80’in üzerine çıktığında, disk bir darboğaz haline geliyor olabilir.

iotop Komutu

iotop, top komutuna benzer şekilde, disk I/O kullanımını gerçek zamanlı olarak gösterir. Hangi süreçlerin diski en çok kullandığını belirlemek için çok faydalıdır.

sudo iotop

iotop size her sürecin ne kadar okuma ve yazma yaptığını, toplam disk okuma/yazma hızlarını gösterir.

hdparm Komutu

hdparm komutu, SATA/IDE sürücülerin parametrelerini ayarlamak ve performansını ölçmek için kullanılır.

Bir diskin okuma hızını test etmek için:

sudo hdparm -tT /dev/sda

* -t: Önbelleğe alınmış okuma hızını test eder.
* -T: Önbelleğe alınmamış okuma hızını test eder.

Bu komut, diskin ham okuma performansını bir gösterge olarak sunar.

Depolama Bütünlüğünü ve Sağlığını Kontrol Etme

Disk bütünlüğünü korumak ve olası arızaları önceden tespit etmek, veri kaybını önlemek için hayati öneme sahiptir.

fsck (File System Check) Komutu

fsck komutu, Linux dosya sistemlerindeki hataları kontrol etmek ve onarmak için kullanılır. DİKKAT: fsck komutunu bağlı (mounted) bir dosya sistemi üzerinde çalıştırmak veri kaybına neden olabilir. Dosya sistemi ayrılmış (unmounted) olmalıdır.

sudo umount /dev/sdb1
sudo fsck -f /dev/sdb1

* -f: Dosya sistemi temiz olsa bile kontrolü zorlar.
* -y: Tüm sorulara otomatik olarak ‘evet’ yanıtı verir (otomatik onarım). Dikkatli kullanılmalıdır.

Sistem önyüklemesinde, /etc/fstab‘daki pass değeri 0’dan büyük olan dosya sistemleri otomatik olarak fsck tarafından kontrol edilir.

badblocks Komutu

badblocks komutu, bir disk bölümündeki bozuk blokları arar.

sudo badblocks -v /dev/sdb1

* -v: Ayrıntılı çıktıyı gösterir.

Bozuk bloklar bulunduğunda, bu bilgiyi fsck‘e ileterek bu blokların kullanılmamasını sağlayabilirsiniz:

sudo fsck -l badblocks.txt /dev/sdb1

smartctl Komutu (S.M.A.R.T. Verileri)

S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology), sabit disk sürücülerinin ve SSD’lerin kendi sağlık durumlarını izlemesini sağlayan bir teknolojidir. smartctl aracı, bu verilere erişmek için kullanılır ve smartmontools paketinin bir parçasıdır.

sudo apt install smartmontools # Debian/Ubuntu
sudo yum install smartmontools # CentOS/RHEL

Bir diskin S.M.A.R.T. durumunu kontrol etmek için:

sudo smartctl -H /dev/sda

Bu, diskin genel sağlık durumunu (“PASSED” veya “FAILED”) gösterir. Detaylı bilgi için:

sudo smartctl -a /dev/sda

Bu çıktı, diskin sıcaklığı, hatalı sektör sayısı, okuma/yazma hata oranları gibi birçok kritik veriyi gösterir. Bu veriler, bir diskin yaklaşan bir arızasını tahmin etmek için kullanılabilir.

Mantıksal Birim Yönetimi (LVM – Logical Volume Management)

LVM, disk alanını daha esnek bir şekilde yönetmek için kullanılan bir depolama soyutlama katmanıdır. Fiziksel diskleri (veya disk bölümlerini) birleştirerek daha büyük, dinamik olarak yeniden boyutlandırılabilir “mantıksal birimler” oluşturmanıza olanak tanır.

LVM Nedir ve Avantajları Nelerdir?

* Esneklik: Dosya sistemlerini çevrimiçi olarak (sistem çalışırken) yeniden boyutlandırabilir, küçültebilir veya genişletebilirsiniz.
* Özetleme: Fiziksel disklerin ayrıntılarını soyutlar. Dosya sistemleri artık belirli bir fiziksel diske bağlı değildir.
* Anlık Görüntüler (Snapshots): Mantıksal birimlerin belirli bir zamandaki anlık görüntülerini alabilir ve bu anlık görüntülerden geri yükleyebilirsiniz.
* Disk Birleştirme: Birden fazla fiziksel diski tek bir mantıksal depolama havuzunda birleştirebilirsiniz.

LVM Kavramları

* PV (Physical Volume – Fiziksel Birim): Fiziksel bir disk bölümü veya tüm disk. pvcreate ile oluşturulur.
* VG (Volume Group – Birim Grubu): Bir veya daha fazla PV’den oluşan bir havuz. vgcreate ile oluşturulur.
* LV (Logical Volume – Mantıksal Birim): Bir VG’den ayrılan ve dosya sistemlerinin üzerine kurulduğu birim. lvcreate ile oluşturulur.

Temel LVM Komutları

* pvcreate /dev/sdb1: /dev/sdb1 bölümünü bir Fiziksel Birim olarak işaretler.
* vgcreate my_vg /dev/sdb1 /dev/sdc1: my_vg adında bir Birim Grubu oluşturur ve /dev/sdb1, /dev/sdc1 PV’lerini ekler.
* lvcreate -L 10G -n my_lv my_vg: my_vg Birim Grubundan 10 GB boyutunda my_lv adında bir Mantıksal Birim oluşturur.
* lvextend -L +5G /dev/my_vg/my_lv: Mantıksal Birimi 5 GB genişletir. (Ardından dosya sisteminin de genişletilmesi gerekir, örn. resize2fs).
* lvreduce -L -2G /dev/my_vg/my_lv: Mantıksal Birimi 2 GB küçültür. (Önce dosya sisteminin küçültülmesi gerekir).
* vgdisplay: Birim Gruplarının detaylarını gösterir.
* lvdisplay: Mantıksal Birimlerin detaylarını gösterir.

LVM, özellikle dinamik depolama ihtiyaçları olan sunucu ortamlarında güçlü bir çözümdür.

RAID (Redundant Array of Independent Disks)

RAID, birden fazla fiziksel diski tek bir mantıksal birim olarak birleştirerek veri yedekliliği, performans artışı veya her ikisini birden sağlamak için kullanılan bir teknolojidir. Linux’ta genellikle mdadm aracı ile yazılım RAID uygulanır.

RAID Nedir ve Neden Kullanılır?

* Performans: Verileri birden fazla diske dağıtarak (striping), okuma/yazma hızlarını artırır.
* Yedeklilik: Verilerin birden fazla kopyasını tutarak veya hata düzeltme bilgileri ekleyerek disk arızalarına karşı koruma sağlar.
* Kapasite: Birden fazla diski birleştirerek daha büyük bir depolama alanı oluşturur.

Yaygın RAID Seviyeleri (Kısa Açıklama)

* RAID 0 (Striping): Verileri diskler arasında şeritler halinde dağıtır. Performansı artırır ancak yedeklilik sağlamaz; bir disk arızası tüm verilerin kaybına yol açar.
* RAID 1 (Mirroring): Verilerin tam kopyalarını birden fazla diske yazar. Mükemmel yedeklilik sağlar ancak kapasiteyi yarıya indirir (iki disk için).
* RAID 5 (Striping with Parity): Verileri ve bir eşlik (parity) bloğunu diskler arasında dağıtır. Tek bir disk arızasına dayanabilir. İyi performans ve kapasite dengesi sunar. En az 3 disk gerektirir.
* RAID 6 (Striping with Dual Parity): RAID 5’e benzer ancak iki eşlik bloğu kullanır. İki disk arızasına dayanabilir. En az 4 disk gerektirir.
* RAID 10 (RAID 1+0): RAID 1 (mirroring) ve RAID 0 (striping) kombinasyonudur. Veriler önce aynalanır, sonra aynalanmış çiftler şeritler halinde dağıtılır. Yüksek performans ve yüksek yedeklilik sunar ancak kapasiteyi yarıya indirir. En az 4 disk gerektirir.

Linux’ta mdadm komutu, yazılım RAID dizileri oluşturmak, yönetmek ve izlemek için kullanılır. Bu, temel bir yönetim görevi olsa da, detaylı RAID yapılandırması bu makalenin kapsamını aşabilir.

Sonuç

Linux’ta depolama aygıtlarını yönetmek, sistem yöneticileri için temel bir beceridir. Bu makalede ele alınan komutlar ve teknikler (lsblk, fdisk, parted, mkfs, mount, df, du, swapon, fsck, smartctl, LVM ve RAID’e giriş), diskleri tanımlamaktan, bölümlendirmeye, dosya sistemleri oluşturmaya, bağlamaya, takas alanı yönetimine, disk kullanımını ve performansını izlemeye kadar geniş bir yelpazeyi kapsamaktadır.

Unutulmamalıdır ki, depolama yönetimi görevleri hassas işlemlerdir ve yanlış uygulandığında veri kaybına yol açabilir. Bu nedenle, herhangi bir önemli değişiklik yapmadan önce daima verilerinizi yedeklemeniz ve özellikle üretim ortamlarında dikkatli olmanız hayati önem taşır. Komutları anlamak, çıktıları doğru yorumlamak ve en iyi uygulamaları takip etmek, Linux sistemlerinizde sağlam, güvenilir ve yüksek performanslı depolama altyapıları oluşturmanıza ve sürdürmenize yardımcı olacaktır. Bu temel bilgileri edinerek, Linux depolama dünyasında daha karmaşık görevleri başarıyla yerine getirmek için güçlü bir temel oluşturmuş olursunuz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version