Как добавить dm-кэш к уже существующей установке удач?

Существует ли определенная причина, почему Вы делаете системные вызовы для доступа к файлу?

В противном случае можно просто использовать существующие конструкции в PHP для получения доступа к файлу:

$log = file_get_contents('/var/www/vhosts/test/statistics/logs/access_log');

или

$log = file('/var/www/vhosts/test/statistics/logs/access_log');

3
22.03.2015, 19:38
2 ответа

Теперь я перегонял достаточно информации, чтобы ответить на мой вопрос. Вот мои шаги для других людей.

Обычный отказ от ответственности: изменение существующих файловых систем и их базовые устройства могут привести к повреждению и потере данных. Планируйте заранее, резервное копирование ваших данных: -)

Если вы выполните эти шаги, части планировки файловой системы, которую я запустил, возможно, не может быть применимо к вашей настройке, адаптироваться соответственно:

  • Я использую Fedora 21.
  • SSD находится на / dev / sda , обеспечивает / boot ( SDA1 ), SWAP ( SDA2 ) и лук-контейнер, который ходит LVM-том root в Группе громкости SSD для Ext4 -форматизм / ( / dev / sda3 -> dev / mapper / luks -... -> / dev / mapper / ssd-root -> / ).
  • HDD находится на / dev / sdb и обеспечивает лук-контейнер, который проводит дамп LVM в группе громкости для ] / home ( / dev / sdb1 -> / dev / mapper / luks -... -> / dev / mapper / dump-dump -> / Home ).
  • Я изменил размер / / -FILESSYSTEM, чтобы освободить место в течение 7,5 ГБ зашифрованного (!) Кэша для обслуживания / Home .
  • Обратите внимание, что LVM, Luks, таблица разделов и файловых систем используют различные размеры блока (например, мои объемы LVM содержат экстенты 4 МБ каждый, My Ext4-файловые системы, лук и разделы являются блоками / секторами 512 байтов каждый) Отказ Выбрал свои размеры, чтобы выровнять соответствие.
  • Дважды проверьте все номера, которые вы вводите вручную для согласованности. Triple-Убедитесь, что вы не заканчиваетесь с файловой системой, которая больше, чем логический том, логический том, который больше, чем физический объем, физический объем, который больше, чем у leuks-Contaner или Luks-контейнер, который больше, чем раздел.

  1. Использование LSBLK , чтобы снова напомнить себе о собственной настройке. Перезагрузитесь до LiveCD и откройте новую терминальную сессию. Переключитесь в root, если вы хотите избежать всех вызовов на sudo ...

  2. Нам понадобится обычные названия Fedora-обычных названий LUKS-контейнеров несколько раз. Положите их в переменные в первую очередь

     sda3uuid = luks-`sudo cryptsetup luksuuid / dev / sda3`
    Sdb1uuit = luks-`sudo cryptsetup luksuuid / dev / sdb1`
     

    $ SDA3UUID теперь содержит UUID для / -Device, $ SDB1UUID / Home .

    Откройте / / -Device с использованием LUKS. LVM будет обнаруживать громкость внутри контейнера и сделать его доступным (как / dev / Mapper / SSD-root в моем случае).

     Sudo CryptSetup Open / Dev / SDA3 $ SDA3UUID
     
  3. Уменьшите размер файловых систем.

    Resize2fs Обеспечивает проверку файловой системы сначала. Я извиню размер файловой системы для / до 20 гигабайт.

     sudo fsck -f / dev / mapper / ssd-root
    Sudo Resize2fs -p / dev / mapper / ssd-root 20g
     

    Этот процесс займет некоторое время. Обратите внимание на выход «Файловая система теперь XYZ Blocks Long» и размер каждого блока (5242880 блоков 4K каждый в моем случае).

  4. Деактивировать и уменьшить размер логического тома, который поддерживает файловую систему.

    -L -Parameter приведен в мегабайтах по умолчанию.

     sudo lvchange - dev / mapper / ssd-root
    sudo lvreduce -l 20480 / dev / mapper / ssd-root
     
  5. Уменьшить размер физического объема, который поддерживает логический том.

    Обратите внимание, что для LUKS и LVM есть некоторые накладные расходы, поэтому физический объем должен оставаться немного больше, чем логический объем. Я добавил два экстента.

     sudo pvresize --etphysicalvolumesize 20488 / dev / mapper / $ sda3uuud
     
  6. Уменьшить размер лук-контейнера.

    -B -BParameter приведен в блоках. Использование PVDisplay и рассчитать как Общее количество физических экстентов * Размер степени * 1024 ** 2/512 (например, Python-C "Print 5121 * 4 * 1024 ** 2/512 "

     Sudo CryptSetup изменение изменений -B 41951232 $ SDA3UUID
     

    Использование Sudo CryptSetup Status $ SDA3UUID , чтобы узнать о новом размере контейнера. В моем случае контейнер 2 МБ больше , чем физический объем и файловая система его содержит (там выравнивается).

  7. Уменьшить размер раздела и создать новый раздел для кэша.

    Сначала деактивируйте логический объем и контейнер.

     Sudo CryptSetup Luksclose $ SDA3UUID
    sudo fdisk / dev / sda
     

    Удалить раздел, который используется SDA3 . Создайте новый раздел, который начинается в том же секторе, что и старый (!), И который является «+ XYZ» в размере («+41951232» в моем случае). Также создайте новый раздел, который заполняет устройство (7,5 ГБ в моем случае). Напишите таблицу разделов на диск и выход FDISK .

    Убедитесь, что файловая система все еще жива:

     Sudo CryptSetup Open / Dev / SDA3 $ SDA3UUID
     

    LVS должен показать логический том.

     sudo fsck -f / dev / mapper / ssd-root
     
  8. Создайте новый контейнер LUKS-контейнера для нового раздела для размещения зашифрованного кэша.

     sudo cryptsetup luksformat / dev / sda4
    SDA4UUUID = LUKS -SSUDO CRAYPTSETUP LUKSUUID / DEV / SDA4`
     
  9. Откройте LUKS-контейнер HDD и продлить группу громкости, которая заканчивается хостинг / Home с новым устройством.

     Sudo CryptSetup Open / DEV / SDB1 $ SDB1UUID
     

    LVS должен показать объемную группу .

     Sudo CryptSetup Open / DEV / SDA4 $ SDA4UUID
    Sudo Vgextend Dump / Dev / Mapper / $ SDA4UUID
     
  10. Создайте логический том для метаданных кэша и самого кеша.

    Говорят, что объем метаданных должен составлять 0,1% размером самого кеша, но 8 МБ с минимальным. Обратите внимание, что есть некоторые накладные расходы, поэтому я выбрал размер кэша 99% оставшихся размеров физического объема.

     Sudo Lvcreate -L 20M -N LV_CACHE_META DUMP / DEV / MAPPER / $ SDA4UUID
    sudo lvcreate -l 99% free -n lv_cache dump / dev / mapper / $ sda4uuuit
    sudo lvconvert --type cache-pool --poolemetadata dump / lv_cache_meta dump / lv_cache
     
  11. Добавьте кэш к логическому объему, который хостит / Home .

     sudo lvconvert --type кэш --cachepool dump / lv_cache dump / dump
     

    Выходное значение должно быть что-то на звук «Логический объем дамп / дамп / дамп».

  12. Обновление CryptTab Итак, новый leuks-контейнер открывается во время загрузки.

     root mkdir
    sudo mount / dev / mapper / ssd-root root
    Sudo Su
    UUID = `CryptSetup Luksuuid / dev / sda4`
    echo "luks- $ uuid uuid = $ uuid none" >> root / etc / crypttab
    выход
    sudo umount root.
     
  13. Пересекайте пальцы и перезагрузитесь в свою оригинальную систему.

    После перезагрузки вы можете получить некоторые статистические данные о кеше, как так:

     LVS --rows -o + устройства, cache_total_blocks, cache_used_blocks, cache_dirty_blocks, cache_rad_hits, cache_rad_misses, cache_write_hits, cache_write_misses dump
     

И там у вас есть.

3
27.01.2020, 21:19

Я бы использовал lvmcache(7), который использует dm-cache. Хорошая запись здесь по этому поводу:

https://rwmj.wordpress.com/2014/05/22/using-lvms-new-cache-feature/

Это, по словам автора, требует использования одной группы томов. Таким образом, вам нужно будет объединить группы томов. Смотрите следующую ссылку, которая использует для этого vgmerge(8):

https://sites.google.com/site/rhelworldexperience/home/rhel-disk-management---tips-and-tricks/mergingvolumegroupsinrhel-vgmerge

Если у вас есть LVM поверх LUKS, я полагаю, что кэширование будет нешифрованным, основываясь на объяснении менеджера устройств, которое можно найти в https://help.ubuntu.com/community/EncryptedFilesystemHowto. LUKS поверх LVM я полагаю, что кэширование зашифрованных данных.

Вот хорошая ссылка для изменения размера, когда LVM находится поверх LUKS: https://help.ubuntu.com/community/ResizeEncryptedPartitions. Надо уметь адаптировать это наоборот.

Обратите внимание, что, возможно, лучше всего настроить тестовую систему для проверки процесса и/или выполнения полного обратного цикла с протестированным/проверенным процессом восстановления.

1
27.01.2020, 21:19

Теги

Похожие вопросы