ZFS dosya sistemi, kutudan çıktığı anda büyük kapasiteler, RAID yansıtma ve yolsuzlukla mücadele mekanizmaları sunar. Ubuntu’yu ZFS ile nasıl kuracağınızı ve yansıtılmış bir havuzun nasıl oluşturulacağını öğrenin.
ZFS nedir?
ZFS, Solaris işletim sistemiyle birlikte kullanılmak üzere Sun Microsystems’den gelen gelişmiş bir dosya sistemidir. Oracle’ın 2009’da Sun’ı satın almasının ardından, ZFS artık Oracle Corporation’ın mülkiyetindedir.
Ancak, tipik bir fedakarlık eylemi olarak, 2005’ten itibaren Sun, ZFS’nin açık kaynaklı bir sürümünü yayınladı. Kaçınılmaz olarak, bu daha geniş bir etki elde ettiği Linux’a taşındı. ZFS’nin açık kaynak sürümü—openZFS—OpenZFS projesi tarafından yönetilir ve sürdürülür.
ZFS, yüksek kapasiteli, hataya dayanıklı bir dosya sistemidir. ZFS başlangıçta Zettabyte Dosya Sistemi anlamına geliyordu. ZFS mimarisi, diğer dosya sistemlerinde daha yaygın olan 64 bit yerine 128 bit üzerine kuruludur. Daha büyük sayısal değerlerle çalışabilmesi, ZFS’yi zettabaytlarca depolama kapasitesini işleyebilmesini sağlayan faktörlerden biridir. Bunun ne anlama geldiğine dair bir fikir vermek gerekirse, bir zettabayt bir milyar terabayttır.
Günümüzde ZFS, 256’ya kadar dosya depolamayı destekler zebibitler. Bir zebibit (270 bayt) bir zettabayttan (1021 bayt), ancak büyüklük sırasına göre değil. ZFS’de tam kapasiteden çok daha fazlası var – olduğu kadar akıl almaz. ZFS, kendi birim yöneticisi ve RAID denetleyicisi olarak işlev görür. Verilerinizi bozulmaya karşı koruyan yazma üzerine gerçek kopyalama gibi yerleşik işlevlere sahiptir. Dosya sistemi havuzlama, klonlama ve kopyalama sağlayan özellikleri ve RAID benzeri işlevselliği yerel olarak birleştirir.
Ubuntu, ZFS’yi birkaç yıldır sunuyor, ancak her zaman uyarılar ve ihtarlarla. Ubuntu 20.10’da uyarılar kaldırıldı. Canonical, resmi olarak ZFS’yi destekler, ancak yalnızca tam disk kurulumlarında. Bu desteği almak için Ubuntu’yu kurarken ZFS’yi kurmanız gerekecek. ZFS seçenekleri hala saklanıyor, ancak oradalar ve artık sadece gözüpek veya gözü pek olanlar için değil.
Ekim 2021’de bitecek Ubuntu 21.10 ile Ubuntu’daki ZFS teklifinin nasıl olgunlaştığını görmek için iyi bir zaman.
İLGİLİ: Ubuntu’da ZFS Nasıl Kurulur ve Kullanılır (ve Neden Yapmak İstiyorsunuz)
Kurulum Sırasında ZFS Seçeneklerini Bulma
Ubuntu kurulumu sırasında “Kurulum Türü” ekranı, Ubuntu’yu kurduğunuz diski silmeyi veya başka bir şey yapmayı seçmenizi sağlar. “Gelişmiş Özellikler” düğmesini tıklayın.
“Gelişmiş Özellikler” iletişim kutusu belirir.
“Diski Sil ve ZFS Kullan” radyo düğmesini seçin ve “Tamam” düğmesini tıklayın.
“Kurulum Türü” ekranı, ZFS kullanmayı seçtiğinizi göstermek için “ZFS Seçildi”yi görüntüler.
“Devam” düğmesine tıklayın ve kurulumu her zamanki gibi tamamlayın.
Bilgisayarınızda kurulu birkaç sabit sürücünüz varsa, bunların ZFS tarafından nasıl kullanılmasını istediğinizi seçebileceksiniz. Ubuntu önerilen bir yapılandırma sunacaktır, ancak bazı şeyleri kendinize göre ayarlayabilirsiniz.
Peki ya Ubuntu’yu kurduktan sonra bazı sabit diskler eklerseniz? Yeni depolamayı kullanmak için ZFS’yi nasıl yapılandırırsınız? Bundan sonra bakacağımız şey bu.
Ekstra Sabit Sürücüler Ekleme
Bu makaleyi araştırmak için kullandığımız test makinesinin tek sabit diskine ZFS ile Ubuntu kurduk. Bilgisayara toplamda üç sabit disk vererek iki sabit disk daha ekledik. Bir sabit sürücüde Ubuntu kuruluydu ve iki yeni sürücü boştu, biçimlendirilmemiş ve takılı değildi.
Yapmamız gereken ilk şey, Ubuntu’nun yeni sabit disklerden nasıl bahsettiğini belirlemek. NS lsblk
komutu, bilgisayarınızda kurulu olan tüm blok aygıtları listeler. Sonuçlarda hangi çıktı sütunlarını görmek istediğimiz konusunda net olabiliriz.
lsblk -o name,size,fstype,type,mountpoint
NS -o
(çıktı) seçeneğini görmek istediğimiz sütunlar takip eder. Seçtik:
- isim: Ubuntu’nun sabit sürücüye atıfta bulunmak için kullandığı ad.
- boy: Sabit sürücünün boyutu. Sabit sürücüde birden fazla bölüm varsa, hepsi listelenir ve her bölümün boyutu gösterilir.
- f tipi: Sabit sürücü veya bölümden biri olan dosya sistemi.
- tip: Satırın bir diske, bölüme, CD-ROM sürücüsüne veya geri döngü sözde aygıtına atıfta bulunup bulunmadığı.
- bağlama noktası: Dosya sisteminin sabit sürücüdeki veya bölümdeki bağlama noktası.
bir sürü var squashfs
geri döngü cihazları, numaralandırılmış loop0
vasıtasıylaloop6
. Bir snap uygulamasını her yüklediğinizde, bu sözde cihazlardan biri oluşturulur. Her bir yakalama uygulamasının etrafını yaslayarak saran kapsülleme ve korumalı alanın bir parçasıdır.
İlk sabit sürücü olarak listelenir /dev/sda
. Bu, üzerinde beş bölüm bulunan 32 GB’lık bir sürücüdür ve şu şekilde listelenmiştir: /dev/sda1
vasıtasıyla /dev/sda5
. Farklı şekillerde biçimlendirilirler. Bu, Ubuntu’yu kurduğumuzda bilgisayarda bulunan sürücüdür.
İki yeni sabit diskimiz şu şekilde listelenmiştir: /dev/sdb
ve /dev/sdc
. Onlar da 32 GB sürücüler, ancak biçimlendirilmemişler ve monte edilmemişler.
Havuzlar, RAID 0, RAID 1
Yeni sabit nehirleri kullanmak için onları bir havuz. Bir havuza istediğiniz kadar sürücü ekleyebilirsiniz. Bunu yapmanın iki yolu vardır. Havuzu, bir RAID 0 yapılandırmasında her bir sabit sürücünün tüm depolama alanını kullanabilmeniz için yapılandırabilir veya havuz yalnızca havuzdaki en küçük sabit sürücünün depolama alanı miktarını sunacak şekilde yapılandırabilirsiniz, RAID 1 yapılandırmasında.
RAID 0’ın avantajı boşluktur. Ancak tercih edilen ve şiddetle tavsiye edilen yapılandırma RAID 1’dir. RAID 1, verileri havuzdaki tüm sürücülere yansıtır. Bu, bir sabit sürücü arızası yaşayabileceğiniz ve dosya sistemi ile verilerinizin hala güvende olduğu ve bilgisayarınızın hala çalışır durumda olduğu anlamına gelir. Hasarlı sürücüyü değiştirebilir ve yeni sürücüyü havuzunuza ekleyebilirsiniz.
Buna karşılık, RAID 0 ile tek bir sabit sürücü arızası, siz sorunlu sürücüyü değiştirip yedeklerinizden bir geri yükleme gerçekleştirene kadar sisteminizi çalışmaz hale getirir.
Bir RAID 1 havuzunda ne kadar çok sürücünüz varsa, o kadar sağlamdır. RAID 1 için ihtiyacınız olan minimum iki sürücüdür. Her iki sürücüde de bir arıza, bir rahatsızlık olabilir, ancak bir felaket değil. Ancak her iki sabit sürücünün aynı anda arızalanması elbette daha büyük bir sorun olacaktır. Bu yüzden cevap, ayırabileceğiniz kadar çok sabit diski bir araya toplamak gibi görünüyor.
Ancak elbette pratikte, tek bir havuza tahsis etmek isteyeceğiniz veya karşılayabileceğiniz sürücü sayısı konusunda bir sınır vardır. Sekiz yedek sabit sürücünüz varsa, iki adet dört sürücülü RAID 1 havuzu kurmak, muhtemelen donanımın tek bir sekiz sürücülü havuzdan daha iyi kullanılmasıdır. Ve unutmayın, bir RAID 1 havuzu yalnızca havuzdaki en küçük sabit diskin depolanmasını sağlayabilir, bu nedenle her zaman aynı boyuttaki sürücüleri tek bir havuzda kullanmaya çalışın.
RAID 1 Havuzu Oluşturma
Yeni sabit sürücülerimizi şu şekilde tanımladık: /dev/sdb
ve /dev/sdc
. Bir ZFS RAID 1 havuzu oluşturmak için şu komutu kullanıyoruz:
sudo zpool create cloudsavvyit mirror /dev/sdb /dev/sdc
Komutun bileşenleri şunlardır:
-
sudo: Sistem konfigürasyonunu değiştiriyoruz, bu yüzden kullanmamız gerekiyor
sudo
kök ayrıcalıkları almak için. - zpool: Bu, ZFS havuz yönetimi komutudur.
-
oluşturmak: İstediğimiz eylem bu
zpool
bizim için yürütmek. - bulut anlayışı: Oluşturmak istediğimiz havuzun adıdır.
- ayna: Verilerimizin tüm sürücülere yansıtılmasını ve bize bir RAID 1 havuzu verilmesini istiyoruz. “Yansıtma” seçeneğinin atlanması, bir RAID 0 havuzu oluşturur.
- /dev/sdb: Yeni sabit disklerimizin ilki.
- /dev/sdc: Yeni sabit disklerimizin ikincisi.
“cloudsavvyit”i havuzunuza vermek istediğiniz adla değiştirin ve değiştirin /dev/sdb
ve /dev/sdc
yeni sabit sürücülerinizin tanımlayıcılarıyla.
Bir havuz oluşturmak biraz iklim karşıtıdır. Her şey yolunda giderse, belirsiz bir şekilde komut istemine geri dönersiniz. kullanabiliriz status
ile eylem zpool
yeni havuzumuzun durumunu görmek için komut.
sudo zpool status cloudsavvyit
Yeni havuzumuz oluşturuldu, online, iki yeni diskimiz havuzda ve herhangi bir hata yok. Hepsi harika görünüyor. Ama havuz nerede? bakalım lsblk
nereye monte edildiğini bize gösterecek.
lsblk -o name,size,fstype,type,mountpoint
Yeni sabit disklerimizin /dev/sdb
ve /dev/sdc
her biri iki bölüme ayrılmıştır, ancak bunlar için herhangi bir bağlama noktası listelenmemiştir. Havuzlar normal sabit diskler gibi monte edilmemiştir. Örneğin, giriş yok /etc/fstab
ZFS havuzları için dosya. Varsayılan olarak, kök dizinde bir bağlama noktası oluşturulur. Havuzla aynı adı taşıyor.
ls /
Bağlama noktasının başka bir yerde oluşturulmasını istiyorsanız, -m
(bağlama noktası) seçeneğini havuzu oluştururken seçin ve bağlama noktasının oluşturulmasını istediğiniz yere giden yolu sağlayın. Ayrıca bağlama noktasına farklı bir ad verebilirsiniz.
sudo zpool create -m /path/to/mount-point-name cloudsavvyit mirror /dev/sdb /dev/sdc
Kullanıcılara Havuza Erişim Verme
Havuz var, ancak yalnızca kök kullanıcı içinde veri depolayabilir. İhtiyacımız olan bu değil elbette. Diğer kullanıcıların havuza erişebilmesini istiyoruz.
Bunu başarmak için şunları yapacağız:
- Havuzda bir dizin oluşturun.
- Yeni bir grup oluşturun.
- Yeni grubu, dizinin grup sahibi olarak ayarlayın.
- Grubun yenilenmesi için veri deposuna erişmesi gereken kullanıcıları ekleyin.
Bu şema büyük esneklik sağlar. Farklı grupların sahip olduğu, ihtiyacımız olduğu kadar çok veri depolama dizini oluşturabiliriz. Kullanıcılara farklı depolama alanlarına erişim vermek, onları uygun gruplara eklemek kadar basittir.
kullanacağız groupadd
Bir kullanıcı grubu oluşturmak için. Grubumuzun adı “csavvy1”. sonra kullanacağız usermod
yeni gruba “dave” adlı bir kullanıcı ekleme komutu. NS -a
(ekle) seçeneği, yeni grubu kullanıcının içinde bulunduğu mevcut gruplar listesine ekler. Bu seçenek olmadan, kullanıcı mevcut tüm gruplardan çıkarılır ve yenisine eklenir. Bu sorunlara neden olur, bu yüzden kullandığınızdan emin olun. -a
seçenek.
sudo groupadd csavvy1
sudo usermod -a -G csavvy1 dave
Yeni grup üyeliğinin etkin hale gelmesi için kullanıcının oturumu kapatıp tekrar açması gerekir.
Şimdi havuzda “data1” adında bir dizin oluşturacağız.
sudo mkdir /cloudsavvyit/data1
NS chgrp
komutu, dizinin grup sahibini belirlememizi sağlar.
sudo chgrp csavvy1 /cloudsavvyit/data1
Son olarak, kullanarak grup izinlerini ayarlayacağız. chmod
. “s”, SGID özel bitidir. Bu, “data1” dizini içinde oluşturulan dosya ve dizinlerin, bu dizinin grup sahibini devralacağı anlamına gelir.
sudo chmod g+rwsx /cloudsavvyit/data1/
Kullanıcımız çıkış yaptı ve tekrar giriş yaptı. Yeni RAID 1 ZFS havuzumuzdaki yeni veri depolama dizininde bir dosya oluşturmaya çalışalım.
touch /cloudsavvyit/data1/new-file.txt
Ve yaratıldığını görelim.
ls /cloudsavvyit/data1 -lh
Başarı. Data1 depolama alanımızın dışında başka bir dosya oluşturmaya çalışırsak ne olur?
touch /cloudsavvyit/new-file2.txt
Bu beklendiği gibi başarısız olur. İzinlerimiz çalışıyor. Kullanıcımız, yalnızca erişim izni verilen veri depolama dizinindeki dosyaları değiştirebilir.
İLGİLİ: Linux’ta SUID, SGID ve Yapışkan Bitler Nasıl Kullanılır
Bir Havuzu Yok Et
Bu komuta dikkat edin. Devam etmeden önce yedeklerinizin olduğundan emin olun. Gerçekten istediğinizden eminseniz ve havuzdaki verilerin başka kopyalarına sahip olduğunuzu doğruladıysanız, bu komutla bir havuzu yok edebilirsiniz:
sudo zpool destroy cloudsavvyit
“cloudsavvyit” ifadesini yok edeceğiniz havuzun adıyla değiştirin.
Sadece Bir Sabit Diskiniz mi Var?
Yalnızca bir sabit sürücünüz varsa veya bilgisayarınızda birden fazla sabit sürücü varsa ancak boyutları yararlı bir havuz oluşturamayacak kadar değişiyorsa, yine de ZFS’yi kullanabilirsiniz. RAID yansıtma elde edemezsiniz, ancak yerleşik yolsuzlukla mücadele ve veri koruma mekanizmaları hala faydalı ve ikna edici özelliklerdir.
Ancak unutmayın, RAID yansıtması olan veya olmayan hiçbir dosya sistemi, yedeklemeleri yok sayabileceğiniz anlamına gelir.
İLGİLİ: Yedekleme ve Yedeklilik: Fark Nedir?