ZFS Dosya Sisteminde Snapshot ve Clone Alma

ZFS Dosya Sisteminde Snapshot ve Clone Alma

Unix dünyasına gireli, 15 yıla yakın olmuştur. Farklı dağıtımlar, farklı Unix tabanlı işletim sistemleri derken, zaman nasıl da geçmiş... Bu süreçte kim bilir neler değişmiştir?

Şu günlerde, Linux dünyasının defacto standart dosya sistemi, Ext4. Daha önce Ext3 ve jurnal desteği olmayan Ext2 vardı. Ext4'ün ilk çıkış zamanlarını ve Ext3'e göre yarattığı farkları gayet net hatırlıyorum. Hatta 2007'de yayımlanan ext4 ile ilgili bir makaleyi (Yeni ext4 Disk Sistemi) bundan 8 yıl evvel büyük bir heyecanla çevirmiştik.

Linux dünyasında dosya sisteminin oturması uzun zaman aldı. Bir ara ReiserFS vardı ve gelecekte büyük bir paya sahip olacağına inanıyorduk. Daha  sonra bu dosya sisteminin yaratıcısı Hans Reiser, karısını öldürüp, cinayetten hüküm giydi ve ReiserFS popülerliğini kaybetti. Ext4 ise zamanla standart hâline geldi. Burada duracak mıyız? Zannetmiyorum. Söyleyeceğim spekülasyona kayabilir ama ileride ext4 yerine, BTRFS dosya sisteminin yaygınlaşacağını düşünüyorum.

Dosya sistemi neden önemlidir? Cevabı basit. Performansı yüksek, güvenilir ve ölçeklenebilir bir dosya sisteminiz yoksa, sıkıntı yaşamanız kaçınılmazdır. Peki yeterli midir? Elbette hayır; talep hiç bitmez. O hâlde ikinci sorumuza gelelim; dosya sistemi, önceki saydıklarıma ilave olarak neler yapılabilir?

Bu yazımda, bir dosya sistemin ek faydalarına değinmek için ZFS dosya sistemine atıfta bulunacağım. ZFS, Solaris işletim sisteminde standart gelen hâyli yetenekli bir dosya sistemidir. Fakat Linux, Mac vb. platformlara da 'port' edilmiştir. Zettabyte seviyesinde volume oluşturabilecek kadar yüksek hacimi destekler ve veri tutarlılığını kendiliğinden sağlar.

Dosya sisteminde, önemli bir değişiklik yapacağımızı ve öncesinde yedek almamız gerektiğini varsayalım. Yedek almak, hâyli haklı ve yerinde bir istek. Fakat ufak bir değişiklik için, bütün dosya sistemini yedeklemek yorucu olabilir. Bunun yerine, ZFS ile ilgili dosya sisteminin clone'unu alıp, yedek amacıyla kullanabiliriz. Bunu nasıl yapacağımıza bakalım.

# ORNEK OLMASI ICIN BIR DOSYA OLUSTURUYORUZ
ccebi@solarisvm:~/DENEME$ ls -ltrh /export/home/ccebi/DENEME/deneme.text
-rw-r--r--   1 ccebi    staff         41 Jul 14 20:34 /export/home/ccebi/DENEME/deneme.text
ccebi@solarisvm:~/DENEME$ cat /export/home/ccebi/DENEME/deneme.text
Thursday, July 14, 2016 08:34:23 PM EEST

# ZFS DISK HAVUZUNU LISTELIYORUZ
ccebi@solarisvm:~/DENEME$ zfs list
NAME                              USED  AVAIL  REFER  MOUNTPOINT
rpool                            7.46G  11.9G  4.86M  /rpool
rpool/ROOT                       5.38G  11.9G    31K  legacy
rpool/ROOT/solaris               5.38G  11.9G  4.72G  /
...
rpool/export                     6.06M  11.9G    32K  /export
rpool/export/home                6.03M  11.9G    32K  /export/home
rpool/export/home/ccebi          6.00M  11.9G  6.00M  /export/home/ccebi
rpool/swap                       1.03G  11.9G  1.00G  -

# DEGISIKLIK ONCESI 'MySnapshot' ADINDA BIR SNAPSHOT OLUSTURUYORUZ
ccebi@solarisvm:~$ sudo zfs snapshot rpool/export/home/ccebi@MySnapshot

# EN ALT SATIRDA GORECEGINIZ GIBI MySnapshot OLUSUYOR
ccebi@solarisvm:~$ zfs list -t snapshot
NAME                                         USED  AVAIL  REFER  MOUNTPOINT
rpool/ROOT/solaris@install                   108M      -  4.50G  -
rpool/ROOT/solaris@2016-07-14-17:17:50          0      -  4.72G  -
rpool/ROOT/solaris@2016-07-14-17:19:13          0      -  4.72G  -
rpool/ROOT/solaris/var@install               114M      -   308M  -
rpool/ROOT/solaris/var@2016-07-14-17:17:50  30.0M      -   264M  -
rpool/ROOT/solaris/var@2016-07-14-17:19:13  77.2M      -   268M  -
rpool/export/home/ccebi@MySnapshot              0      -  6.00M  - 

# SNAPSHOT'IN BULUNDUGU LOKASYON, DOSYA SISTEMININ BAGLI OLDUGU LOKASYON ALTIDIR
ccebi@solarisvm:~$  /export/home/ccebi/.zfs/snapshot/MySnapshot

# DOSYANIN ORIJINALINI SILIYORUZ
ccebi@solarisvm:~$ rm /export/home/ccebi/DENEME/deneme.text
ccebi@solarisvm:~$ ls /export/home/ccebi/DENEME/deneme.text
/export/home/ccebi/DENEME/deneme.text: No such file or directory

# ORIJINAL DOSYA SILINMIS OLMASINA RAGMEN SNAPSHOT DURUYOR
ccebi@solarisvm:~/DENEME$ cat /export/home/ccebi/.zfs/snapshot/MySnapshot/DENEME/deneme.text
Thursday, July 14, 2016 08:34:23 PM EEST

Bu noktada istersek, sadece ilgili dosyayı kopyalayabiliriz. Ya da dosya sistemini tamamen dönebiliriz.

# SNAPSHOT ZAMANINA DOSYA SISTEMINI DONDURME
# FILESYSTEM UNMOUNT EDILIYOR
ccebi@solarisvm:/$ sudo umount /export/home/ccebi
# SNAPSHOT ZAMANINA DONULUYOR
ccebi@solarisvm:~$ sudo zfs rollback rpool/export/home/ccebi@MySnapshot
# TEKRAR MOUNT EDILIYOR
ccebi@solarisvm:/$ sudo zfs mount rpool/export/home/ccebi
# DOSYA KONTROL EDILIYOR
ccebi@solarisvm:/$ cat /export/home/ccebi/DENEME/deneme.text
Thursday, July 14, 2016 08:34:23 PM EEST

# DILERSEK ZFS SNAPSHOT'I SILEBILIRIZ
ccebi@solarisvm:/$ sudo zfs destroy rpool/export/home/ccebi@MySnapshot

Gördüğünüz gibi birkaç komutla, çok hızlı bir biçimde o anın görüntüsünü aldık ve dosyamızı kurtardık. Hatta dosya dosya uğraşmamak için komple kurtarmayı da gördük. Bunu bir adım öteye taşıyalım. Snapshot'lar, okunabilir ama yazılamaz kopyalardır. Peki bir test için yazılabilir anlık kopyaya ihtiyacımız varsa, neyi farklı yapmamız gerekir? Aslında süreç hemen hemen aynı işliyor. Yalnız bu sefer, Snapshot aldıktan sonra, bunun üzerine bir de Clone komutu giriyoruz. Yani Snapshot'lar sadece okunur olmakla birlikte, yazılabilir Snapshot'ı Clone olarak tanımayabiliriz. Şimdi de bunu gerçekleştirelim:

# ONCE SNAPSHOT ALIP, BU SNAPSOT UZERINDEN CLONE OLUSTURUYORUZ
ccebi@solarisvm:~$ sudo zfs snapshot rpool/export/home/ccebi@MySnapshot
ccebi@solarisvm:~$ sudo zfs clone rpool/export/home/ccebi@MySnapshot rpool/export/home/MyClone

# CLONE'U KONTROL EDIYORUZ
ccebi@solarisvm:~$ zfs list | grep MyClone
rpool/export/home/MyClone          41K  11.8G  5.97M  /export/home/MyClone
# DOSYA SISTEMI OLARAK GELDIGI GORULUYOR
ccebi@solarisvm:~$ df -h /export/home/MyClone/
Filesystem             Size   Used  Available Capacity  Mounted on
rpool/export/home/MyClone
                        19G   6.0M        12G     1%    /export/home/MyClone

Tebrikler! Bu noktada, yazılabilir bir kopyaya sahip oldunuz. Clone'dan vazgeçerseniz de, anında uçurabilirsiniz.

# OLUSTURDUGUMUZ CLONE VE SNAPSHOT'I SILME
ccebi@solarisvm:~$ sudo zfs destroy rpool/export/home/MyClone
ccebi@solarisvm:~$ sudo zfs destroy rpool/export/home/ccebi@MySnapshot

Bu anlatım, ZFS ile yapabileceklerinize dair küçük bir örnekti. Solaris işletim sistemini indirip, VirtualBox üzerinden çok daha farklı deneyimler gerçekleştirebilirsiniz. (Oracle Solaris 11.3 Downloads bağlantısından kurulum imajlarını edinebilirsiniz.) Peki kurulumu nasıl yapacağız? O da basit. Solaris ile ilgili eski bir kurulum yazısına, web sayfamdan erişebilirsiniz. Eski olmakla birlikte, ilk defa kurulum yapacaklar için fikir verecektir. 

Gökhan T.

POS Devices | Software Development | System Integration | Cards & Payments | VUK507

8y

Güzel olmuş

Beğen
Yanıtla
Sarav Asiye Yigit

CTO at Gantek Technology. Writer, Poet, Singer, and Composer.

8y

Eline sağlık.

Beğen
Yanıtla
Gunes Erol

Founder at VeridataIT

8y

nice work

Beğen
Yanıtla

Yorumları görmek veya yorum eklemek için oturum açın

Cagatay Cebi adlı yazarın diğer makaleleri

  • Düşünen makinelerin geleceğe etkisi ne olur?

    Düşünen makinelerin geleceğe etkisi ne olur?

    Bilincin ne olduğu, derin tartışmalar gerektiren felsefi bir konu. Tam olarak adını koyamıyoruz.

  • Nesil farkları, yatırım kültürünü nasıl etkileyebilir?

    Nesil farkları, yatırım kültürünü nasıl etkileyebilir?

    Boomer kuşağı diyeceğimiz 1950 ile 60 yılları arasında doğanlar, bazı konularda şanslı bir nesildi. Muhtemelen benim…

    1 Yorum
  • Using Terraform on Oracle Cloud Infrastructure (OCI)

    Using Terraform on Oracle Cloud Infrastructure (OCI)

    I was just coding with Terraform to manage and configure an OCI compartment. This took me almost fifteen years ago.

    3 Yorum
  • Napolyon'dan Unix işletim sistemine

    Napolyon'dan Unix işletim sistemine

    Napolyon, Korsika doğumluydu. Adanın Fransa’ya geçişinden bir yıl sonra, Toskana asıllı soylu ve görece mütevazı…

  • Evdeki Internet kaliteniz için 15 öneri

    Evdeki Internet kaliteniz için 15 öneri

    Evden çalışma ağırlık kazanınca, Internet bağlantısı daha da kritik oldu. Son zamanlarda yakınlarımdan çok soru…

    4 Yorum
  • Paralellik Verimliliği Üzerine...

    Paralellik Verimliliği Üzerine...

    Commodore 64 ile çok ufak yaşlarda tanıştım. 10-11 yaşlarında Amiga 500 sahibiydim.

    2 Yorum
  • Solaris Üzerinde Güvenlik Taramaları

    Solaris Üzerinde Güvenlik Taramaları

    Solaris Üzerinde Güvenlik Taramaları Solaris üzerinde gelen hazır araçlarla nasıl güvenlik taraması yapılır?

  • Kobo Glo HD İncelemesi

    Kobo Glo HD İncelemesi

    Kısa bir süre önce Kobo, idefix ve D&R ortaklığıyla Türkiye'de faaliyete başladı. Ben de bir süredir elektronik kitap…

    1 Yorum
  • Facebook, Whatsapp'tan ne bekliyor?

    Facebook, Whatsapp'tan ne bekliyor?

    Şubat 2014 tarihinde Whatsapp, Facebook tarafından alınmıştı. Söz konusu 19 Milyar dolar olunca, bol bol konuştuk tabii.

    6 Yorum

Diğer görüntülenenler