GNU/Linux >> Belajar Linux >  >> Linux

Contoh Linux AuFS:Tutorial Sistem File Union Lainnya (Implementasi UnionFS)

AuFS adalah singkatan dari Another Union File System.

AuFS dimulai sebagai implementasi dari UnionFS Union File System.

Sistem file gabungan mengambil sistem file yang ada dan melapisinya secara transparan pada sistem file yang lebih baru. Ini memungkinkan file dan direktori dari sistem file terpisah untuk hidup berdampingan di bawah satu atap. AuFS dapat menggabungkan beberapa direktori dan memberikan tampilan gabungan tunggal.

AuFS digunakan di banyak proyek sumber terbuka seperti, Slax, Knoppix, dan banyak live CD dan distribusi USB langsung lainnya.

Pada sistem berbasis Debian, misalnya di Ubuntu, lakukan hal berikut untuk menginstal aufs.

# apt-get install aufs-tools

Contoh 1 – Memahami Cara Kerja AuFS

Contoh ini menunjukkan cara memasang dua direktori dari sistem file yang sama.

# mkdir /tmp/dir1

# mkdir /tmp/aufs-root

# mount -t aufs -o br=/tmp/dir1:/home/lakshmanan none /tmp/aufs-root/

Dua perintah pertama membuat 2 direktori baru. mount.aufs adalah perintah untuk memasang sistem file sebagai Union mount.

Perintah mount, menentukan itu akan menggabungkan mount "/tmp/dir1″ dan /home/lakshmanan" di bawah "/tmp/aufs-root". Direktori “/tmp/aufs-root” akan memiliki konten “/tmp/dir1” dan “/home/lakshmanan”.

Opsi berikut digunakan dalam contoh perintah mount di atas:

  • -o – menentukan opsi yang akan diteruskan ke sistem file
  • br – menentukan cabang, di mana setiap cabang dipisahkan oleh titik dua (:). Cabang tidak lain adalah direktori pada sistem.
  • none – menentukan bahwa kami tidak memiliki perangkat apa pun yang terkait dengannya, karena kami akan memasang dua direktori

Seperti yang Anda lihat dari output perintah ls -l di bawah ini, kita dapat melihat bahwa aufs menggabungkan konten dari 2 direktori terpisah dan menghadirkan tampilan terpadu.

# ls -l /tmp/dir1/
-rw-r--r-- 1 root       root       23 Mar 25 14:21 file_in_tmp_dir1

# ls -l /home/lakshmanan
-rw-r--r-- 1 root       root            26 Mar 25 14:20 file_in_home_dir

# ls -l /tmp/aufs-root/
-rw-r--r-- 1 root       root            26 Mar 25 14:20 file_in_home_dir
-rw-r--r-- 1 root       root            23 Mar 25 14:21 file_in_tmp_dir1

Secara default, jika tidak ada izin yang ditentukan, cabang pertama akan dipasang sebagai dapat ditulis, dan cabang lainnya akan dipasang sebagai hanya-baca.

Jadi, ketika Anda membuat file apa pun di dalam ‘/tmp/aufs-root/’, secara fisik file itu akan dibuat di bawah “/tmp/dir1”, karena ini adalah satu-satunya cabang yang dapat ditulis.

Contoh 2 – Tampilan Terpadu Direktori Beranda

Kadang-kadang, administrator sistem akhirnya memiliki beberapa partisi disk yang memiliki direktori home dari banyak pengguna. Kita akan melihat contoh bagaimana kita dapat menjadikannya sebagai tampilan terpadu dan menyederhanakan proses admin.

Dalam contoh ini:

  • /home -> adalah titik pemasangan /dev/sda2 yang memiliki pengguna "lakshmanan" dan "sysadmin"
  • /home1 -> adalah titik pemasangan /dev/sdb2 yang memiliki pengguna "uji".
# mount -t aufs -o br=/home=rw:/home1=rw -o udba=reval  none /common/

# ls -l /common/
drwxr-xr-x 39 lakshmanan lakshmanan  4096 Mar 25 15:52 lakshmanan
drwxr-xr-x 26 sysadmin   sysadmin    4096 Mar 25 15:51 sysadmin
drwxr-xr-x  2 root       root        4096 Mar 25 16:36 test

Perintah mount di atas memiliki opsi tambahan yang disebut "udba", yang mengacu pada "Akses Cabang Langsung Pengguna". Opsi ini mengatakan apa yang harus dilakukan, jika pengguna langsung mengakses cabang dan membuat/memperbarui file tanpa melalui AuFS.

Berikut ini adalah kemungkinan nilai untuk udba:

  • udba=none – Dengan opsi ini, AuFS akan lebih cepat, tetapi mungkin menampilkan data yang salah, jika pengguna membuat file/direktori apa pun tanpa melalui AuFS.
  • udba=reval – Dengan opsi ini, AuFS akan mencari ulang cabang dan memperbaruinya. Jadi, setiap perubahan yang dilakukan pada direktori mana pun dalam cabang, akan tercermin dalam “/common”.
  • udba=notify – Dengan opsi ini, AuFS akan mendaftar untuk inotify untuk semua direktori di cabang. Ini memengaruhi kinerja AuFS.
# touch /home/lakshmanan/TGS

# ls -l /common/lakshmanan/
.
.
-rw-r--r-- 1 root       root             0 Mar 25 17:17 TGS

Perintah sentuh membuat file bernama "TGS" di direktori home "lakshmanan" tanpa melalui AuFS. Karena kita melakukan mount menggunakan “udba=retval”, ketika kita menjalankan ls, AuFS melakukan pencarian ulang dan menampilkan file baru yang telah dibuat.

Perhatikan juga bahwa, pada perintah mount sebelumnya, kami menetapkan izin untuk setiap cabang sebagai readwrite. Jadi ketika file dibuat di bawah /common/test/, itu akan dibuat secara fisik di "/home1/test/", yang merupakan lokasi fisik sebenarnya. Hal yang sama juga berlaku untuk direktori lain.

# touch /common/test/Testing

# ls -l /home1/test/
-rw-r--r-- 1 root root  0 Mar 25 18:26 Testing

Contoh 3 – Mount dengan Izin hanya baca untuk Cabang

Anda juga dapat memasang dengan mengatur izin untuk setiap cabang.

# mount -t aufs -o br=/tmp/dir1=rw:/home/lakshmanan=ro -o udba=reval none /tmp/aufs-root/

Perintah di atas akan me-mount /tmp/aufs-root, dengan memiliki “/tmp/dir1” sebagai writable, dan “/home/lakshmanan” sebagai readonly. Setiap perubahan yang Anda lakukan di /tmp/aufs-root, hanya akan disimpan di bawah “/tmp/dir1”, karena itu adalah satu-satunya direktori yang dapat ditulis.

Urutan perintah berikut dapat digunakan untuk memverifikasi hal di atas.

# cat > /home/lakshmanan/1.txt
This is a new file

# cat /tmp/aufs-root/1.txt
This is a new file

# cat >> /tmp/aufs-root/1.txt
This is updated on AuFS space

# cat /home/lakshmanan/1.txt
This is a new file

# cat /tmp/dir1/1.txt
This is a new file
This is updated on AuFS space

Dalam urutan perintah di atas, kami melakukan hal berikut:

  • Kami membuat file bernama 1.txt di bawah “/home/lakshmanan”.
  • File ini direfleksikan di direktori union mount, karena opsi udba=retval yang kami jelaskan di atas
  • Perbarui file yang ada di direktori union mount
  • Meskipun file tersebut ada di dalam /home/lakshmanan, karena di-mount sebagai readonly, AuFS mengambil salinan file dan meletakkannya di “/tmp/dir1”.
  • Di atas salinan itu, ia menambahkan konten, dan menyimpan file
  • Di /home/lakshmanan/1.txt, perubahan tidak terlihat
  • File baru bernama “1.txt”, dibuat di bawah “/tmp/dir1” yang memiliki konten yang diperbarui

Contoh 4 – Terapkan Kebijakan Round Robin untuk Membuat file di bawah AuFS

Jika kita memiliki lebih dari 2 cabang yang dapat ditulis, kita dapat memilih salah satu dari kebijakan yang telah ditentukan, sehingga file yang dibuat akan disimpan berdasarkan kebijakan yang dipilih.

# mount -t aufs -o br=/tmp/dir1=rw:/home/lakshmanan=rw -o udba=reval -o create=rr none /tmp/aufs-root/

Opsi “create=rr”, menetapkan bahwa kebijakan round robin harus diterapkan untuk pemasangan gabungan ini. Dalam kebijakan round robin, jika kita membuat 4 file, 2 file akan berada di “/tmp/dir1” dan 2 file akan berada di “/home/lakshmanan”.

# touch /tmp/aufs/first-round-robin

# touch /tmp/aufs/second-round-robin

# ls -l /tmp/dir1/first-round-robin
-rw-r--r-- 1 root root 0 Mar 25 21:53 /tmp/dir1/first-round-robin

# ls -l /home/lakshmanan/second-round-robin
-rw-r--r-- 1 root root 0 Mar 25 21:54 /home/lakshmanan/second-round-robin

Linux
  1. Tutorial Perintah Linux tail untuk Pemula (5 Contoh)

  2. Cara memasang dan memasang sistem file di Linux

  3. ln Contoh Perintah di Linux

  1. Cara membuat dan memasang sistem file Btrfs (dijelaskan dengan contoh)

  2. Cara membuat dan memasang sistem file di Linux

  3. mount Contoh Perintah di Linux

  1. Tutorial Perintah Linux df untuk Pemula (8 Contoh)

  2. Tutorial perintah sentuh Linux untuk pemula (6 contoh)

  3. File Contoh Perintah di Linux