Bog Bos Btrfs файлова система
Крава - ново и да се промени данните се записват в едно празно място, не презаписване старите данни. На всеки 30 секунди (комит) автоматично генерира нова файлова система като точка за намаление на цените в случай на неизправности или грешки, така че загуба на данни не трябва да надвишава 30 секунди (вж. Nobarrier по-долу). В този случай, броят на настоящата генерация (поколение) се увеличава с 1. крава позволява записването на данни (не само метаданни), без удвояване на обема на записи (по-точно атомна промяна на данни транзакция). Тя може да бъде деактивирана (препоръчва се за бази данни и снимки на виртуални дискове - в противен случай те са фрагментирани в един милион броя) с монтаж (nodatacow) или основа на отделна файл ( "chattr + С името на файла").
Командата кп е ключов "--reflink [= винаги]", която ви позволява да копирате файлове, без да се увеличава дисково пространство се използва за промяна на копието.
Налице е дефрагментиране програма във фонов режим (ядро 3.0). Defragmentirovanie файлова система с изображения и да се размножите reflink комуникативно място (до 3.9).
Не съществува отчитане на броя на файловете (не работи "ге -i"), и резерв за пространството, възела.
степен за съхранение на данни (гранулиране подразбиране 4KiB, а максималната - 128 KiB).
Вграден в способността за правене на снимки (снимки, снимка на), в режим само за четене (използване noatime!) И без никакви ограничения (алтернативен вариант), преди. снимки. Режимът може да се променя "в движение". Снимката не може да се забави. Налице е също така subvolume (поддървета) с възможност за отделна планина. Том (снимки) образуват йерархия. Подтема или моментна снимка обем (или subvolume) прилича на обикновен директория в обема на най-високо ниво (не могат да бъдат отстранени, докато не изтриете снимка или subvolume). Можете да декларирате моментна снимка на корен subvolume или по подразбиране точка на монтиране. При монтаж може да бъде определен пряко или корен subvolume снимка монтирана файлова система. Преминаването от един subvolume от друга страна - това е истинско движение от диск на диск, но пространство се разпределя от общ басейн (парче). Снимки споделят пространство, използвани за едни и същи файлове от обема на източник, а другата от неговите картини. За да освободите моментна снимка, не се препоръчва да има най-високото ниво е нищо друго освен каталози подкубове и снимки, както и редактиране на подтеми, а не на корен. Това ще позволи, ако е необходимо, монтирайте вместо subvolume моментна снимка, и как да изтриете.
Създаване, съхранение и проверка на контролни суми за данни (може да се изключи и да степен блокове) и метаданни (crc32c, 256 бита запазени за метаданни и 4KiB за данни). Правилната стойност може да бъде взето от второто копие; неправилна стойност се коригира от версия. преди това може само да копирате и изтриване на файлове.
компресиране на данни, използвайки алгоритми lzo и Zlib (ниво 3), гранулиране poekstentnaya (монтаж ключове или "chattr + в" преди запис), като се има предвид възможността за притискане и без. Обещаната пъргавото и LZ4. Забранен за директен вход / изход (DirectIO, DIO) и NOCOW. Компресия не е направено от страница (4 KiB), цели степени (128 KiB), за да прочетете байта необходимо да се декомпресира цялата степен, и за промяна на байтове в средата на степента, е необходимо да се пренапишат цялата работа. Zlib в режим на потока с общ речник до степента, lzo компресира всяка страница (?) поотделно. Тестване ниво компресия в целия пакет от данни (16.2 TB):- Btrfs Zlib-сила - 2.69
- софтуерна -1 - 2.81
- софтуерна -9 - 2.92
- XZ -1 - 3.35
- XZ --lzma2 = запаметена = 9, Dict = 200MiB, хубаво = 273 - 3.97
Фонови процеси блок на базата на сканиране (само окупираните блокове) и корекция (ядро 3.1).
Проверка структура (fsck), докато razmontirovannolm състояние (обещание във фонов режим).
Квоти място заемат subvolume (на снимката) - нито един потребител или група потребители. Йерархията квоти.
Подкрепа за синхронизация с отдалечен огледалото (изпращате, получавате).
Обещаната дедупликация, докато записвате, вече има и премахване на дублирането след записване- duperemove. poekstentno ядро 3.13 (Btrfs-степен-същото IOCTL), се опита в RHEL 7.0: Аз не знам дали мястото е запазен, но промяна на файл време pokorozheno, въпреки прилагането на режим "само за четене" как да се съчетаят с образите ясно. Събрах някои статистически данни
- bedup. на-файл основание, ядрото 3.3 или 3.6 за дедупликация на целия обем, Python 2.7, и "още един" пакетна система - не се опита
/ Сис / FS / Btrfs (ядро 3.14).
Ключове mkfs.btrfs (създадени незабавно да RHEL 7 не потвърди, че сайтът е заета):- --данни
- --метаданни
- --байт-разчита на размера на файлова система # все още място на устройството за блокиране
- --Alloc-стартиране компенсира стартиране файлова система # 0
- --силовите # не обръщат внимание, че мястото, което заемат
- --nodesize байта размер # блок метаданни; на 3.4 ядрото не може да бъде различен от размера на страницата с 3.4 ядро - да 64KiB; По подразбиране е равна на размера на страницата памет, версия 3.12 комунални услуги и ядрото 3.4 - 16 384 (с Btrfs-шоу-супер BIG_METADATA дава списъка с несъвместими знамена ядро 3.10); Тя трябва да е кратна на размера на сектора, не повече от 65 536; ако размерът на файла е по-малко от leafsize-148, данните се вписват сред метаданни
- --leafsize # не е актуална, използвайте --nodesize
- --sectorsize байта # по подразбиране - размер на страницата (4KiB); не трябва да бъде по-малко от физическия блок; безплатно клъстъра пространство за данни за площ
- --смесена # микс парчета (късовете) на данни и метаданни за малки файлови системи
- --етикет таг # 256 байта
- --nodiscard # Не използвайте TRIM и изхвърлете
- --характеристики опция # може да е проблем с по-старите ядки, пълния списък може да се получи "mkfs.btrfs -О списък-всички"
- смесена бг # --mixed?
- extref # подразбиране версия 3.12 комунални услуги, до 65536 препратки към едно на възела в директория (това е по-малко от 350, когато листата в 4KiB) ядрото 3.7
- raid56
- кльощав-метаданни # ядро 3.9, помощната програма по подразбиране 3,18; съкратен размера на метаданни на (различен формат на диска) - 30% от размера на дървото степен
- Не дупки # ядрото 3.14, 3.18.1 комунални услуги; друг формат на диска
- big_metadata # ядро 3.4, размер на страницата nodesize повече памет
- влошено (тя позволява да се монтира файловата система в случай на повреда на един от блоково устройство)
- възстановяване (3.2 ядро; автоматично възстановяване от подходящи корените предишния сканиране)
- rescan_uuid_tree (ядро 3.12)
- subvol = subvolume име (монтаж поддърво; ядрото на 3,2 радикално subvolume db)
- subvolid = идентификатор subvolume (монтаж поддърво идентификаторът на корен е 5)
- устройство = устройство (сканиране на устройството в търсене на обем Btrfs;! само списък за сканиране на всички устройства в / и т.н. / fstab, ако initrd не изпълнява "сканиране Btrfs устройство")
- nodatasum (за нови файлове, да не се справят с проверка по сума за данни)
- nodatacow (за нови файлове; ускорение - 5% за последователни операции, значително ускорение при работа с бази данни, също компресия с увреждания и изчислителни контролна)
- nobarrier (евентуално разрушаване на цялата файлова система, и fsck примитив; multidisc брои с ядра 3.2)
- max_inline = байтове (максималният размер на данни вграден директно в метаданните, по подразбиране на 8192, защото 4K страници = 3,900)
- alloc_start = (започне разпределението на място на диска?)
- thread_pool = брой от паралелни потоци (подразбиране - се изисква мин (брой ядра + 2.8), за да се повиши при използване на компресия)
- компресира [= Zlib | = lzo | = не] (lzo ядрото 02.06.39; не ядро 3.6)
- компресирате-сила [= ZLib | = lzo] (дори и компресирате файлове plohoszhimaemye)
- SSD (? оптимизиране на разпределение блокове на SSD - веднъж за всички устройства, автоматично проверява / сис / блок / * / опашката / въртене; TRIM трябва да бъдат включени отделно)
- ssd_spread (опит да се разпределят големи парчета, води до засилено фрагментация)
- изхвърлете (въпрос TRIM / изхвърляне командването на блокове освобождаване на SATA намалее до 3.1, но вместо това може да се използва периодично fstrim)
- noacl
- notreelog (на теория списания дърво намалява броя на операциите на записи с метаданни с fsync, но на практика без големи файлове случайни скорости за запис до 5 пъти за ядки преди 3.0.2, ако програмата се е позовал на fsync, това може да е проблем)
- flushoncommit (при завършване на всички предстоящи сделки за извършване на разпределение на блокове, включени в новите ядра по подразбиране)
- metadata_ratio = 8 (разпределение на пространството на данни и метаданни се () са фиксирани и ако място в метаданните над и под данните - не, че е необходимо да се постави редица по-малки ,? трябва да се вземе предвид степента на компресия)
- space_cache (съхранение на растерна графика на свободно дисково пространство (без крава и контролна), с 2.6.37, нестабилни работи в RHEL7, ядрото 3.10)
- clear_cache (ако сте използвали преди това space_cache и искате да се отървете от него с 2.6.37)
- nospace_cache (3.2 ядро; изчисляване на растерна графика пространство при монтажа)
- enospc_debug (въпрос за отстраняване на грешки печат, когато настъпи събитие, а "липса на място на устройството", се препоръчва да не ви забави)
- user_subvol_rm_allowed (за да позволи на потребителите да изтрият subvolume с ядро 2.6.37)
- autodefrag (старт дефрагментиране не е съвместима с голяма база данни и виртуални машини изображения с 3.0)
- inode_cache (безплатно на възела кеш, от 3.0, не се препоръчва, докато достигне броя на възела 2 ^ 64; обичайното поведение - добавете 1 за всеки нов файл не се използва отново използването на възела
- check_int, check_int_data, check_int_print_mask = Mask (ядро 3.3, проверка на метаданните в движение; забавя, използван за отстраняване на грешки само)
- ангажират = секунди (30; ядрото 3.12; кеша изчисти интервал на запис върху диска и образува "намаление на цените точка" в случай на повреди и грешки)
- fatal_errors = (3.4 ядро; хрян ряпа не сладък)
- skip_balance (3.3 ядрото, а не поднови балансиране)
Няма нужда да тичам fsck да провокират в / и т.н. / fstab, разположен в края на "0 0" линия.
Сглобяването и монтажа Btrfs 3.18.1 комунални услуги от сорс пакети в CentOS 7.0:- инсталиране на ядрото Devel пакети, libblkid-раз, libuuid-раз
- Wget ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/linux/updates/20/SRPMS/btrfs-progs-3.18.1-1.fc20.src.rpm
- об -iv /tmp/btrfs-progs-3.18.1-1.fc20.src.rpm
- Yum инсталирате asciidoc
- катран -xvf /root/rpmbuild/SOURCES/btrfs-progs-v3.18.1.tar.xz
- CD Btrfs-progs-v3.18.1
- Вим utils.c # /root/rpmbuild/SOURCES/btrfs-init-dev-list.patch
- правят инсталиране
- / ЮЕсАр / местни / хамбар / Btrfs --version
- инсталиране на ядрото Devel пакети, libblkid-раз, libuuid-раз
- Git Git клонинг: //git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git
- CD Btrfs-progs
- правя
- направи Btrfs-изберете-супер
- направи Btrfs-нула-дневник
Btrfs покръстен - трансформираща файлова система ext2 / ext3 / ext4 да Btrfs на място.
Btrfs-дебъгване дърво - дървото на сключване на метаданни на стандартния изход ( "-r" произвежда списък subvolume, изображения и т.н.).
Btrfs намиране-корен - търсене (бавно) и на изхода на корените на дърветата (поколение ниво филтър).
Btrfs изображение - за да направите изображение на файловата система с занулено данни (компресира и изпраща на разработчиците за отстраняване на грешки).
Btrfs-шоу-супер - информационен дисплей на Superblock (поколение етикет, корен, знамена, размер на блока, и т.н.).
btrfstune - промените някои от параметрите на файловата система, по непредпазливост дадено при сътворението.
Btrfs-нулева влезете - ясен източник дневник кодеци Xvid дърво, ако не можете да монтирате файлова система (от значение е загубено).