GNU/Linux >> Znalost Linux >  >> Linux

Příklady Linux AuFS:Další výukový program systému souborů Union (implementace UnionFS)

AuFS znamená Another Union File System.

AuFS začalo jako implementace UnionFS Union File System.

Sjednocený souborový systém přebírá existující souborový systém a transparentně jej překrývá na novějším souborovém systému. Umožňuje souborům a adresářům samostatného souborového systému koexistovat pod jednou střechou. AuFS může sloučit několik adresářů a poskytnout na ně jediný sloučený pohled.

AuFS se používá v mnoha opensource projektech, jako je Slax, Knoppix a mnoho dalších live CD a živých USB distribucích.

Na systémech založených na Debianu, například na Ubuntu, nainstalujte aufs následovně.

# apt-get install aufs-tools

Příklad 1 – Pochopení toho, jak AuFS funguje

Tento příklad ukazuje, jak připojit dva adresáře stejného souborového systému.

# mkdir /tmp/dir1

# mkdir /tmp/aufs-root

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

První dva příkazy vytvořily 2 nové adresáře. mount.aufs je příkaz pro připojení souborového systému jako připojení Union.

Příkaz mount určuje, že dojde ke sjednocení připojení „/tmp/dir1″ a /home/lakshmanan“ pod „/tmp/aufs-root“. Adresář „/tmp/aufs-root“ bude mít obsah „/tmp/dir1“ i „/home/lakshmanan“.

Ve výše uvedeném příkladu příkazu mount jsou použity následující možnosti:

  • -o – určuje volby, které mají být předány souborovému systému
  • br – určuje větev, kde každá větev je oddělena dvojtečkou (:). Větev není nic jiného než adresář v systému.
  • žádný – určuje, že k němu nemáme přidružené žádné zařízení, protože se chystáme připojit dva adresáře

Jak vidíte z níže uvedeného výstupu příkazu ls -l, vidíme, že aufs slučuje obsah 2 samostatných adresářů a přináší jednotný pohled.

# 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

Ve výchozím nastavení, pokud nejsou zadána žádná oprávnění, bude první větev připojena jako zapisovatelná a zbývající větve budou připojeny jako pouze pro čtení.

Takže když vytvoříte jakýkoli soubor uvnitř ‚/tmp/aufs-root/‘, fyzicky bude vytvořen pod „/tmp/dir1“, protože je to jediná zapisovatelná větev.

Příklad 2 – Jednotné zobrazení domovských adresářů

Někdy se stává, že správci systému mají více diskových oddílů, které mají domovské adresáře více uživatelů. Ukážeme si příklad toho, jak to můžeme udělat jako jednotné zobrazení a zjednodušit proces administrace.

V tomto příkladu:

  • /home -> je přípojný bod /dev/sda2 s uživateli „lakshmanan“ a „sysadmin“
  • /home1 -> je přípojný bod /dev/sdb2 s „testovacím“ uživatelem.
# 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

Výše uvedený příkaz mount má navíc možnost nazvanou „udba“, která odkazuje na „Přímý přístup k větvi uživatele“. Tato možnost říká, co dělat, pokud uživatel přímo přistupuje k větvi a vytváří/aktualizuje soubory, aniž by musel projít AuFS.

Následující jsou možné hodnoty pro udba:

  • udba=none – S touto volbou bude AuFS rychlejší, ale může zobrazovat nesprávná data, pokud uživatel vytvořil nějaké soubory/adresáře, aniž by prošel AuFS.
  • udba=reval – S touto volbou AuFS znovu vyhledá větve a aktualizuje je. Takže jakékoli změny provedené v libovolných adresářích v rámci větve se projeví v „/common“.
  • udba=notify – S touto volbou se AuFS zaregistruje pro inotify pro všechny adresáře v pobočkách. To ovlivňuje výkon AuFS.
# touch /home/lakshmanan/TGS

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

Dotykový příkaz vytvořil soubor s názvem „TGS“ v domovském adresáři „lakshmanan“, aniž by prošel AuFS. Protože jsme se připojili pomocí „udba=retval“, když spustíme ls, AuFS provedl opětovné vyhledání a zobrazí nový soubor, který byl vytvořen.

Všimněte si také, že v předchozím příkazu mount jsme zadali oprávnění pro každou větev jako readwrite. Takže když je soubor vytvořen pod /common/test/, bude fyzicky vytvořen v "/home1/test/", což je skutečné fyzické umístění. Totéž platí i pro ostatní adresáře.

# touch /common/test/Testing

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

Příklad 3 – Připojení s oprávněním pouze pro čtení pro větve

Můžete se také připojit tak, že pro každou větev nastavíte oprávnění.

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

Výše uvedený příkaz připojí /tmp/aufs-root tak, že bude mít „/tmp/dir1“ jako zapisovatelný a „/home/lakshmanan“ jako pouze pro čtení. Jakákoli změna, kterou provedete v /tmp/aufs-root, bude uložena pouze pod „/tmp/dir1“, protože to je jediný zapisovatelný adresář.

K ověření výše uvedeného lze použít následující sekvenci příkazů.

# 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

Ve výše uvedené sekvenci příkazů jsme provedli následující:

  • Vytváříme soubor s názvem 1.txt pod „/home/lakshmanan“.
  • Tento soubor se odráží v adresáři pro připojení k jednotce kvůli volbě udba=retval, kterou jsme vysvětlili výše
  • Aktualizujte soubor, který se nachází v adresáři pro připojení k jednotce
  • I když je soubor přítomen v /home/lakshmanan, protože je připojen jako pouze pro čtení, AuFS vezme kopii souboru a umístí ji do „/tmp/dir1“.
  • Navrch této kopie připojí obsah a uloží soubor
  • V souboru /home/lakshmanan/1.txt se změna neprojeví
  • Vytvoří se nový soubor s názvem „1.txt“ pod „/tmp/dir1“, který má aktualizovaný obsah

Příklad 4 – Použijte zásadu Round Robin pro vytváření souborů pod AuFS

Když máme více než 2 větve, do kterých lze zapisovat, můžeme si vybrat kteroukoli z předdefinovaných zásad, takže vytvořený soubor bude uložen na základě zvolené zásady.

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

Volba „create=rr“ určuje, že pro toto spojení musí být aplikována zásada kruhového provozu. V zásadě round robin, pokud vytvoříme 4 soubory, 2 soubory budou v „/tmp/dir1“ a 2 soubory budou v „/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. Výukový program Linux tail Command pro začátečníky (5 příkladů)

  2. Příklady příkazů mount v Linuxu

  3. V příkladech příkazů v Linuxu

  1. Jak vytvořit a připojit souborový systém Btrfs (vysvětleno na příkladech)

  2. Jak vytvořit a připojit souborové systémy v Linuxu

  3. soubor Příklady příkazů v Linuxu

  1. Linux df Command Tutorial pro začátečníky (8 příkladů)

  2. Výukový program dotykového ovládání Linuxu pro začátečníky (6 příkladů)

  3. Jak připojit a odpojit souborový systém v Linuxu