Fayl tizimi turlari
Bo'lim yoki LVM logical volume tayyor bo'lgach, unda ma’lumot saqlashdan oldin fayl tizimi kerak — bo'sh block qurilmaning o'zida fayl yoki katalog tushunchasi yo'q. Bu maqola eng keng tarqalgan Linux fayl tizimlarini (ext4, XFS, Btrfs, ZFS) solishtiradi, ularni qanday yaratish va ko'zdan kechirishni ko'rsatadi hamda qaysi biri qaysi vaziyatga mos kelishini tushuntiradi. Fayl tizimi mavjud bo'lgach, tabiiy keyingi qadam — uni yo swap sifatida tayyorlash, yo mount qilish orqali foydalanishga tayyorlash.
Nimalarni o'rganasiz
Bu maqola oxirida siz quyidagilarni qila olasiz:
- ext4, XFS, Btrfs va ZFS o'rtasidagi asosiy farqlarni hamda har birining kuchli va zaif tomonlarini tushuntirish;
mkfs(va uningmkfs.ext4,mkfs.xfskabi front-end’lari) dan foydalanish;- mavjud fayl tizimi haqida
tune2fsvaxfs_infobilan ma’lumot olish; - fayl tizimi yorlig'ini (label) o'rnatish va o'zgartirish;
- fayl tizimi tekshiruvini (
fsck) qachon va qanday ishga tushirishni tushuntirish; - yangi loyiha yoki server uchun qaysi fayl tizimini tanlashni asoslash.
Fayl tizimi nima va u nega kerak
Bo'lim yoki LV — aniq chegara ichidagi baytlar ketma-ketligi, xolos. Fayl tizimi — uning ustiga qo'yiladigan va quyidagilarni ta’minlaydigan tuzilma:
- fayl va katalog nomlarini blok raqamlariga (inode’larga) moslash;
- fayl metama’lumotlarini (egasi, ruxsatlari, o'zgartirilgan vaqti) saqlash;
- bo'sh joyni boshqarish (qaysi bloklar ishlatilgan, qaysilari bo'sh);
- ayrim hollarda — kutilmagan o'chishdan keyin journal orqali izchillikni tiklash.
Fayl tizimisiz bo'limdan faqat swap sifatida yoki xom ma’lumotlarni saqlash uchun (ayrim ma’lumotlar bazasi dvigatellari qilganidek) foydalanish mumkin.
Asosiy fayl tizimlarini solishtirish
| Xususiyat | ext4 | XFS | Btrfs | ZFS |
|---|---|---|---|---|
| Yetuklik / barqarorlik | Juda yuqori, ko'p yillik standart | Yuqori, katta fayllar bilan yaxshi tanilgan | O'rtacha-yuqori, faol rivojlantirilmoqda | Yuqori (Solaris’dan), Linux’da tashqi modul |
| Fayl tizimining maksimal hajmi | ~1 EiB | ~8 EiB (nazariy, amalda ~500 TB) | ~16 EiB | ~256 ZB |
| Kichraytirish | Qo'llab-quvvatlanadi | Qo'llab-quvvatlanmaydi | Qo'llab-quvvatlanadi (onlayn) | Qo'llab-quvvatlanadi (cheklangan, zpool darajasida) |
| Snapshot’lar | Yo'q (LVM kerak) | Yo'q (LVM kerak) | Ichiga o'rnatilgan | Ichiga o'rnatilgan |
| Checksumming (ma’lumotlar yaxlitligi) | Faqat metama’lumotlar | Faqat metama’lumotlar | Ma’lumotlar + metama’lumotlar | Ma’lumotlar + metama’lumotlar |
| Sukut bo'yicha kernelga kiritilgan | Ha | Ha | Ha | Yo'q (litsenziya sababli, DKMS/ZFS-on-Linux orqali) |
| Odatiy foydalanish | Umumiy maqsad, root//home |
Katta fayllar, ma’lumotlar bazalari, media serverlar | Snapshot/COW kerak bo'lgan tizimlar (masalan, Fedora, openSUSE root) | Katta saqlash massivlari, NAS, ZFS pool boshqaruvi |
ext4
ext2 → ext3 → ext4 zanjirining eng so'nggi bo'g'ini; maxsus Linux uchun yaratilgan va ko'p distributivlarda tarixan sukut bo'yicha tanlov. Journal yuritadigan, barqaror, keng qo'llab-quvvatlanadigan fayl tizimi. Kengaytirish ham, kichraytirish ham qo'llab-quvvatlanadi (ikkalasi ham unmount qilingan holda ishonchliroq, garchi kengaytirishni onlayn ham bajarish mumkin bo'lsa ham).
XFS
Katta fayllar va yuqori parallel I/O uchun optimallashtirilgan va Red Hat Enterprise Linux’da sukut bo'yicha fayl tizimi. Uning kuchli tomoni — katta fayllarni tez yozish/o'qish va katta hajmlarda barqarorlik. Asosiy cheklovi: uni kichraytirib bo'lmaydi — faqat kattalashtirish mumkin.
Btrfs
Copy-on-write (COW) arxitekturasiga qurilgan zamonaviy fayl tizimi; ichiga o'rnatilgan snapshot’lar, checksumming va ko'p diskli (RAID’ga o'xshash) imkoniyatlarga ega. U LVM’siz snapshot olish imkonini beradi. Fedora va openSUSE kabi ayrim distributivlar undan sukut bo'yicha root fayl tizimi sifatida foydalanadi.
ZFS
Dastlab Sun Solaris uchun yaratilgan; juda kuchli ma’lumotlar yaxlitligi (checksumming), o'zining volume boshqaruvi (zpool, LVM’ga o'xshash, lekin fayl tizimi bilan birlashtirilgan) va snapshot imkoniyatlariga ega. Litsenziya nomuvofiqligi sababli u Linux kernelining o'ziga kiritilmagan — zfsutils-linux paketi va DKMS orqali alohida o'rnatiladi. Katta NAS/saqlash serverlarida keng ishlatiladi.
Info
Btrfs va ZFS fayl tizimi va volume boshqaruvini bitta qatlamga birlashtiradi — shu ma’noda ular LVM + ext4/XFS birikmasiga muqobil yondashuv.
Fayl tizimini yaratish: mkfs
mkfs — turli fayl tizimi quruvchilari uchun umumiy front-end:
Bu buyruq aslida mos maxsus buyruqni chaqiradi — mkfs -t ext4 va mkfs.ext4 bir xil natija beradi:
Har bir fayl tizimi turining o'z qo'shimcha flag'lari bor, masalan:
sudo mkfs.ext4 -L data /dev/sdb1 # -L: create with a label
sudo mkfs.xfs -f /dev/sdb2 # -f: force-replace an existing filesystem
Flag'larning to'liq ro'yxati uchun har bir fayl tizimining o'z man sahifasi bor:
Danger
mkfs bo'limdagi (yoki LV’dagi) barcha mavjud ma’lumotlarni qaytarib bo'lmaydigan qilib o'chiradi. Bu buyruqni faqat bo'sh, ishlatilmayotgan bo'limda yoki o'chirib tashlasa bo'ladigan sinov VM’ida ishga tushiring. Buni production diskka qo'llashdan oldin maqsadli bo'limni lsblk, blkid bilan tasdiqlang va zaxira nusxa oling.
Mavjud fayl tizimi haqida ma’lumot olish
tune2fs — ext oilasi uchun
Filesystem volume name: data
Filesystem UUID: 1a2b3c4d-5e6f-7890-abcd-ef1234567890
Filesystem state: clean
Block size: 4096
Inode count: 1310720
Free blocks: 5108000
Mount count: 3
Maximum mount count: -1
tune2fs -l fayl tizimining barcha metama’lumotlarini (holat, blok hajmi, UUID, oxirgi tekshiruv sanasi) chiqaradi. tune2fs ayrim parametrlarni o'zgartirish uchun ham ishlatiladi (masalan, majburiy fsck tekshiruvi oralig'i):
xfs_info — XFS uchun
meta-data=/dev/sdb2 isize=512 agcount=4, agsize=1310720 blks
data = bsize=4096 blocks=5242880, imaxpct=25
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
xfs_info faqat mount qilingan fayl tizimida ishlaydi (mount nuqtasi yoki qurilma yo'li orqali chaqiriladi) — u XFS’ning ichki tuzilmasi (allocation group’lar, journal hajmi) haqida ma’lumot beradi.
Umumiy maqsadli vositalar: blkid, lsblk -f, df -T
Fayl tizimi yorliqlari
Yorliq (label) — UUID o'rniga ishlatish mumkin bo'lgan, odam o'qiy oladigan nom. /etc/fstab UUID’ga ham, yorliqqa ham murojaat qila oladi.
sudo e2label /dev/sdb1 data # set a label for ext2/3/4
sudo e2label /dev/sdb1 # show the current label
XFS uchun:
sudo xfs_admin -L data /dev/sdb2 # set a label (while unmounted)
sudo xfs_admin -l /dev/sdb2 # show the current label
Fayl tizimini tekshirish: fsck
fsck (file system check) fayl tizimidagi izchillik xatolarini (masalan, kutilmagan elektr uzilishidan keyin) tekshiradi va imkoni bo'lgan joyda ularni tuzatadi. mkfs kabi fsck ham fayl tizimiga xos buyruqqa yo'naltiradi (fsck.ext4, xfs_repair).
fsck from util-linux 2.38
e2fsck 1.46.5 (30-Dec-2021)
data: clean, 11/1310720 files, 133589/5242880 blocks
Warning
fsck ni mount qilingan fayl tizimida ishga tushirish tavsiya etilmaydi — ayrim tekshirish/tuzatish amallari faol yozishlar bilan ziddiyatga kirib, ma’lumotlarni shikastlashi mumkin. Iloji boricha avval unmount qiling; root fayl tizimi kabi unmount qilib bo'lmaydigan fayl tizimlari uchun tekshiruv odatda qayta yuklash paytida, boot’ning eng boshida bajariladi.
XFS uchun tekshiruv boshqa buyruq bilan bajariladi:
xfs_repair ham unmount qilingan fayl tizimida ishlaydi; jiddiy shikastlanish holatlarida avval xfs_repair -L (log'ni tozalash) kerak bo'lishi mumkin — bu oxirgi yozilmagan tranzaksiyalarni tashlab yuboradi, shuning uchun u boshqa iloj bo'lmagandagina ishlatiladi.
Amaliy vaziyat: yangi bo'limda ext4 yaratish va tekshirish
Vaziyat. Bo'limlar (partitions) maqolasida yaratilgan /dev/sdb2 (20 GiB) da hali fayl tizimi yo'q. Uni ext4 bilan tayyorlash, yorliq berish va natijani tekshirish kerak.
1. Bo'limda fayl tizimi yo'qligini tasdiqlang
Agar buyruq hech narsa qaytarmasa (bo'sh chiqish), bo'lim tayyor — davom etish xavfsiz.
2. Fayl tizimini yarating
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 5242880 4k blocks and 1310720 inodes
Filesystem UUID: 9f8e7d6c-5b4a-3210-fedc-ba0987654321
...
3. Natijani tekshiring
4. Mount qiling va tasdiqlang
Xulosa. Fayl tizimi muvaffaqiyatli yaratildi va yorliq hamda UUID orqali tasdiqlandi. Doimiy ulash uchun keyingi qadam — /etc/fstab ga UUID orqali yozuv qo'shish, chunki qo'lda bajarilgan mount faqat joriy sessiya uchun amal qiladi.
Zaxira bloklar: nega "to'la" ext fayl tizimida hali ham joy bor
Intervyuda junior’larni qoqiltiradigan tafsilot: ext2/3/4 sukut bo'yicha fayl tizimining 5% ini root uchun zaxiraga oladi. df oddiy foydalanuvchi uchun 100% band deb ko'rsatganda root ko'pincha hali ham yoza oladi — va bu 5% ataylab qilingan. U muhim daemon’larga (ular odatda root sifatida ishlaydi) foydalanuvchilar diskni to'ldirib qo'yganda ham log yozish va yozishda davom etish imkonini beradi hamda blok taqsimlovchisiga og'ir fragmentatsiyadan qochish uchun yetarli joy qoldiradi.
Katta ma’lumotlar volume’ida (root fayl tizimida emas) 5% — juda ko'p behuda joy: 1 TiB diskda 50 GiB. U yerda uni kamaytirish xavfsiz:
Warning
Root (/) fayl tizimida zaxirani hech qachon 0 ga tushirmang. Bu disk to'lganda root’ga tegishli xizmatlarga yozishda davom etish imkonini beradigan xavfsizlik chegarasini olib tashlaydi va haqiqatan 100% to'lgan root fayl tizimi tizimni boot qila olmaydigan yoki tizimga kirib bo'lmaydigan holatda qoldirishi mumkin. -m ni kamaytirish / uchun emas, alohida ma’lumotlar//home volume’lari uchun. XFS’da foydalanuvchi bo'yicha bunday zaxira yo'q — to'lgan XFS fayl tizimi bosim ostida boshqacha ishlashining sabablaridan biri shu.
Qaysi fayl tizimini va qachon tanlash kerak
| Vaziyat | Tavsiya etilgan fayl tizimi |
|---|---|
Umumiy maqsadli server, root//home, sinalgan barqarorlik muhim |
ext4 |
| Katta media fayllar, ma’lumotlar bazasi fayllari, yuqori parallel I/O | XFS |
| LVM’siz snapshot va checksumming kerak, tez-tez ortga qaytarish | Btrfs |
| Katta NAS/saqlash massivi, kuchli ma’lumotlar yaxlitligi, birlashtirilgan volume boshqaruvi | ZFS |
| Keyinchalik volume’ni kichraytirish ehtimoli yuqori | ext4 yoki Btrfs (XFS emas) |
Keng tarqalgan xatolar
XFS’ni kichraytirishga urinish
xfs_growfs faqat kattalashtiradi. Agar XFS bo'limini kichraytirish kerak bo'lsa, yagona yo'l — yangi, kichikroq fayl tizimini yaratib, ma’lumotlarni rsync bilan ko'chirish.
mkfs ni noto'g'ri qurilmaga qo'llash
mkfs hech qachon butun diskka (/dev/sdb) emas, mo'ljallangan bo'limga (/dev/sdb1) yoki LV’ga (/dev/vg_data/lv_app) qaratilishi kerak — aks holda bo'limlar jadvali ustidan yoziladi va undagi har bir bo'lim yo'q qilinadi.
Mount qilingan fayl tizimida fsck yoki mkfs dan foydalanish
Ikkalasi ham faol yozishlar bilan ziddiyatga kiradi. mkfs ko'pincha mount qilingan qurilmada ishlashni rad etadi, lekin -f kabi majburlash flag'lari bu himoyani chetlab o'tishi mumkin — ataylab niyat qilmasdan ulardan foydalanmang.
Yorliq va UUID’ni bir xil narsa deb hisoblash
Yorliq — odam tanlagan, o'zgartirilishi mumkin bo'lgan nom; UUID esa tizim yaratgan, deyarli hech qachon takrorlanmaydigan identifikator. fstab da UUID’dan foydalanish tavsiya etiladi, chunki yorliq ikki fayl tizimi o'rtasida tasodifan to'qnash kelishi mumkin.
Mashqlar
- O'chirib tashlasa bo'ladigan VM’da bitta bo'sh bo'limda ext4, boshqasida XFS yarating, ikkalasini ham yorliq bilan.
tune2fs -lvaxfs_infochiqishlarini solishtiring — qaysi ma’lumot umumiy (UUID, blok hajmi) va qaysi biri fayl tizimiga xos ekanini qayd qiling.- ext4 bo'limini unmount qilib, uni
fsckbilan tekshiring; natijada "clean" holatini tasdiqlang. - Bitta bo'limda avval ext4 yarating, so'ng uning o'rniga XFS yaratish uchun uni tozalang (
mkfs.xfs -f) —blkidorqaliTYPEmaydoni o'zgarishini kuzating.
Mashqni bajardim deyish uchun: yuklama tavsifi (katta media fayllar, tez-tez ortga qaytarishni talab qiladigan ma’lumotlar bazasi, keyinchalik kichraytirish kerak bo'lishi mumkin bo'lgan root fayl tizimi) berilganda fayl tizimini tavsiya qila olishingiz va nega ekanini asoslab bera olishingiz kerak.
Xulosa
Fayl tizimi bo'lim yoki LV ustiga fayl va katalog tuzilmasini qo'shadi; ext4 — universal, barqaror standart, XFS katta fayllarda kuchli, lekin kichraytirib bo'lmaydi, Btrfs va ZFS esa snapshot va checksumming'ni o'z ichiga olgan zamonaviy, birlashtirilgan yondashuvlar. mkfs.* oilasi fayl tizimlarini yaratadi, tune2fs/xfs_info esa mavjud fayl tizimini ko'zdan kechirishning asosiy vositalari. Fayl tizimi tayyor bo'lgach, keyingi qadam — agar u swap uchun mo'ljallangan bo'lsa, Swap fayl va partition maqolasida ko'riladigan mkswap/swapon jarayoni, oddiy fayl tizimi uchun esa mount va umount.