Новый быстрый интерфейс изменения размера EXT4 файловой системы

Автор оригинала: Michael Larabel
  • Перевод
Вчера был опубликован запрос добавления изменений в ядро Linux 3.3 от Theodore Ts'o. Среди множества исправилений багов и других изменений в текущей де-факто стандартной файловой системе Linux, EXT4, появился новый интерфейс изменения размера файловой системы на лету, который впервые был публично представлен несколько месяцев назад. Новый интерфейс для EXT4 разработал Yongqiang Yang.

Что пишет сам автор по этой теме? «Это новый интерфейс изменения размера налету для ext4. Он может быть использован ioctl с EXT4_IOC_RESIZE_FS и 64-битным числом, хранящим размер файловой системы в блоке.»

Реализация Yongqiang отличается тем, что изменение размера EXT4 налету теперь происходит в ядре. Тесты, представленные Yongqiang, показывают, что изменение размера файловой системы с новым кодом значительно быстрее: изменение размера с 20Гб до 230Гб раньше занимало более пяти минут, но сейчас он показал, что это можно сделать всего за 3.35 секунды. Изменение размера со 100Гб до 230Гб занимает менее половины секунды. Подробные тесты можно посмотреть в рассылке.

Кроме того, что изменение размера файловой системы стало намного быстрее, в новом коде добавились и другие полезные функции, такие как bigalloc и простое исключение битового массива (exclude bitmap easily).

Новая реализация добавила около 1000 строк кода в модуль файловой системы ядра. Pull request в 3.3 ядро, который включает описанную выше реализацию плюс другие изменения в EXT4, можно посмотреть в письме Theodore Ts'o.

Это улучшение EXT4 лишь одно из многих улучшений в ядре 3.3, над которым только начали работать и которое официально выйдет примерно через два месяца.

Средняя зарплата в IT

120 000 ₽/мес.
Средняя зарплата по всем IT-специализациям на основании 7 078 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
Реклама
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее

Комментарии 47

    +4
    Под «изменением» подразумевается и увеличение и уменьшение ФС?
      0
      Извините, не могу ответить на ваш вопрос. Из тестов видно только увеличение размера.
        –12
        Простите, это просилось сюда:

        I hear many of you finally have smooth Flash support, but me and my Intel card are still waiting on a kernel patch somewhere in the pipeline before we can watch Jon Stewart smoothly.
          +12
          Э… Совсем не в тему. Ресайз файловой системы — крайне острая проблема (особенно в свете перехода на виртуальные/композитные блочные устройства) и сравнивать это с умирающей десктопной технологией (или нахрена вы эту картинку притащили) совсем нелепо.

          Всё равно, что обсуждать достоинства автомагнитолы в треде про фичи автопогрузчиков.
        +1
        Как Вы себе представляете уменьшение раздела на лету?
          +13
          Как админ HP-UX и AIX я это себе прекрасно представляю :)
            0
            А вот в Linux JFS, насколько я в курсе (пользуюсь XFS почти всегда), не позволяет =(
              0
              Да, потому что в Линуксах реализована только первая версия, а в AIX рулит вторая уже :)
                0
                Да ладно, в линуксах как раз вторая портирована, просто двойку не стали в названии ставить.
            +3
            Примерно так

            resize2fs /dev/device size
              +3
              Упс сорри, по налету не заметил :)
                +2
                На сколько я помню, он выдаст ошибку, что-то типа «online shrinking not supported».
                  0
                  Саппортет, вроде, но в очень узком наборе возможностей. Хотя я не уверен, давно последний раз делал.
                    0
                    Если можно верить ману (в чём я иногда сомневаюсь):

                    It can be used to enlarge or shrink an unmounted file
                    system located on device. If the filesystem is mounted, it can
                    be used to expand the size of the mounted filesystem, assuming
                    the kernel supports on-line resizing. (As of this writing, the
                    Linux 2.6 kernel supports on-line resize for filesystems mounted
                    using ext3 and ext4.).
                +1
                Как в zfs?
                Хотя понятие раздела там размытое :)
                  0
                  Ну ZFS и не является файловой системой в классическом понятии этого термина. Там просто можно ограничить и динамически изменять максимально доступное пространство для ФС внутри пула (кстати, насчёт уменьшения не уверен, просто не проверял).
                    0
                    Меньше занятого уменьшить нельзя :).
                      0
                      Чушь
                        –1
                        zfs list
                        NAME USED AVAIL REFER MOUNTPOINT
                        hostjails/1010 1.63G 382M 1.63G /hostjails/1010

                        zfs set quota=1G hostjails/1010
                        cannot set property for 'hostjails/1010': size is less than current used or reserved space

                        zfs set quota=1.63G hostjails/1010

                        zfs list
                        NAME USED AVAIL REFER MOUNTPOINT
                        hostjails/1010.azar-a.net 1.63G 2.90M 1.63G /hostjails/1010
                          0
                          Чушь не потому, что можно.
                          Квота — это свойство датасета.
                          StamPit говорил о структуре пула. Из него нельзя в настроящий момент динамически удалить тома, но можно добавить, увеличив доступно пространство.
                            –1
                            Можно уменьшить пул, но придется поплясать с двумя пулами.
                    0
                    Реализовано только увеличение. Уменьшение связано с релокацией блоков, думаю не скоро будет.
                  0
                  Конечно же, здесь понимается «уменьшение ФС». Раздел уменьшать можно в некоторых случаях. К примеру, в LVM это lvreduce (что может повредить существующей ФС).
                +6
                Относительно ext4 больше радует другое: в e2fsprogs наконец-то включили e4defrag.
                  +2
                  По сравнению с ext3, в ext4 (слава preallocate) фрагментация куда ниже.
                    +9
                    Надо же, я еще помню времена, когда считалось, что на линуксных файловых системах «фрагментации нет», почти как с сексом в СССР ;)
                      +9
                      Некоторые и сейчас так считают.
                        +8
                        Насчет секса или насчет фрагментации?
                          0
                          Насчёт СССР :)
                        +1
                        Смотря на каких, не ext2 живы единым.
                        +2
                        Но она всё же есть. Раз в полгода прогонять винт дефрагменталкой было бы неплохо.
                          +3
                          дефрагментация не сильно актуальна, если у вас free space на разделе всегда в достатке. у меня на руках есть раздел с ext3, на котором почти каждый день кончалось место. по факту, он настолько фрагментирован, что скорость чтения/записи не превышает 1 МБ/сек.
                            +1
                            а можно поподробнее? размер раздела, модель HDD, есть ли RAID, если есть — то какого уровня и на каком железе, и простенький бенчмарк с помощью dd?
                      –8
                      мне кажется после этой статьи во всех поисковиках по запросу «изменение размера» будет выпадать хабр, даже когда речь идёт совсем не о "изменение размера файловой системы"
                        +2
                        Жаль только что до сих пор нет поддержки снэпшотов.
                          0
                          а lvm чем не нравится?
                            +4
                            Тормозами ужастными www.nikhef.nl/~dennisvd/lvmcrap.html
                            www.mysqlperformanceblog.com/2009/02/05/disaster-lvm-performance-in-snapshot-mode/
                            и тд. Просто слезы от таких снапшотов.
                              0
                              Порой хочется чего-то наподобие виндовой теневой копии, которую можно снять с любого блочного устройства, да ещё и с хранилищем в оперативке.
                                0
                                Тормозит ужасно.

                                В итоге файловый сторадж поднял на Nexenta, так как там есть ZFS. Отсутствие нормального продакшн ZFS в Linux — это отдельный очень больной вопрос.
                                  +1
                                  btrfs довольно таки стремительно надвигается
                                    0
                                    Это «стремительное» надвигание уже два с лишним года длится. Или ишак заговорит или шах сдохнет.
                              0
                              чем вас нынешняя поддержка btrfs не устраивает?
                                0
                                Эта ФС не рекомендована к применению в production.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое