Существует ли определенная причина, почему Вы делаете системные вызовы для доступа к файлу?
В противном случае можно просто использовать существующие конструкции в PHP для получения доступа к файлу:
$log = file_get_contents('/var/www/vhosts/test/statistics/logs/access_log');
или
$log = file('/var/www/vhosts/test/statistics/logs/access_log');
Теперь я перегонял достаточно информации, чтобы ответить на мой вопрос. Вот мои шаги для других людей.
Обычный отказ от ответственности: изменение существующих файловых систем и их базовые устройства могут привести к повреждению и потере данных. Планируйте заранее, резервное копирование ваших данных: -)
Если вы выполните эти шаги, части планировки файловой системы, которую я запустил, возможно, не может быть применимо к вашей настройке, адаптироваться соответственно:
/ dev / sda
, обеспечивает / boot ( SDA1
), SWAP ( SDA2
) и лук-контейнер, который ходит LVM-том root
в Группе громкости SSD
для Ext4
-форматизм /
( / dev / sda3
-> dev / mapper / luks -...
-> / dev / mapper / ssd-root
-> /
). / dev / sdb
и обеспечивает лук-контейнер, который проводит дамп LVM
в группе громкости
для ] / home
( / dev / sdb1
-> / dev / mapper / luks -...
-> / dev / mapper / dump-dump
-> / Home
). /
/ -FILESSYSTEM, чтобы освободить место в течение 7,5 ГБ зашифрованного (!) Кэша для обслуживания / Home
. Использование LSBLK
, чтобы снова напомнить себе о собственной настройке. Перезагрузитесь до LiveCD и откройте новую терминальную сессию. Переключитесь в root, если вы хотите избежать всех вызовов на sudo
...
Нам понадобится обычные названия 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
Уменьшите размер файловых систем.
Resize2fs
Обеспечивает проверку файловой системы сначала. Я извиню размер файловой системы для /
до 20 гигабайт.
sudo fsck -f / dev / mapper / ssd-root Sudo Resize2fs -p / dev / mapper / ssd-root 20g
Этот процесс займет некоторое время. Обратите внимание на выход «Файловая система теперь XYZ Blocks Long» и размер каждого блока (5242880 блоков 4K каждый в моем случае).
Деактивировать и уменьшить размер логического тома, который поддерживает файловую систему.
-L
-Parameter приведен в мегабайтах по умолчанию.
sudo lvchange - dev / mapper / ssd-root sudo lvreduce -l 20480 / dev / mapper / ssd-root
Уменьшить размер физического объема, который поддерживает логический том.
Обратите внимание, что для LUKS и LVM есть некоторые накладные расходы, поэтому физический объем должен оставаться немного больше, чем логический объем. Я добавил два экстента.
sudo pvresize --etphysicalvolumesize 20488 / dev / mapper / $ sda3uuud
Уменьшить размер лук-контейнера.
-B
-BParameter приведен в блоках. Использование PVDisplay
и рассчитать как Общее количество физических экстентов * Размер степени * 1024 ** 2/512 (например, Python-C "Print 5121 * 4 * 1024 ** 2/512 "
Sudo CryptSetup изменение изменений -B 41951232 $ SDA3UUID
Использование Sudo CryptSetup Status $ SDA3UUID
, чтобы узнать о новом размере контейнера. В моем случае контейнер 2 МБ больше , чем физический объем и файловая система его содержит (там выравнивается).
Уменьшить размер раздела и создать новый раздел для кэша.
Сначала деактивируйте логический объем и контейнер.
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
Создайте новый контейнер LUKS-контейнера для нового раздела для размещения зашифрованного кэша.
sudo cryptsetup luksformat / dev / sda4 SDA4UUUID = LUKS -SSUDO CRAYPTSETUP LUKSUUID / DEV / SDA4`
Откройте LUKS-контейнер HDD и продлить группу громкости, которая заканчивается хостинг / Home
с новым устройством.
Sudo CryptSetup Open / DEV / SDB1 $ SDB1UUID
LVS
должен показать объемную группу
.
Sudo CryptSetup Open / DEV / SDA4 $ SDA4UUID Sudo Vgextend Dump / Dev / Mapper / $ SDA4UUID
Создайте логический том для метаданных кэша и самого кеша.
Говорят, что объем метаданных должен составлять 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
Добавьте кэш к логическому объему, который хостит / Home
.
sudo lvconvert --type кэш --cachepool dump / lv_cache dump / dump
Выходное значение должно быть что-то на звук «Логический объем дамп / дамп / дамп».
Обновление 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.
Пересекайте пальцы и перезагрузитесь в свою оригинальную систему.
После перезагрузки вы можете получить некоторые статистические данные о кеше, как так:
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
И там у вас есть.
Я бы использовал lvmcache(7)
, который использует dm-cache
. Хорошая запись здесь по этому поводу:
https://rwmj.wordpress.com/2014/05/22/using-lvms-new-cache-feature/
Это, по словам автора, требует использования одной группы томов. Таким образом, вам нужно будет объединить группы томов. Смотрите следующую ссылку, которая использует для этого vgmerge(8):
Если у вас есть LVM
поверх LUKS
, я полагаю, что кэширование будет нешифрованным, основываясь на объяснении менеджера устройств, которое можно найти в https://help.ubuntu.com/community/EncryptedFilesystemHowto. LUKS
поверх LVM
я полагаю, что кэширование зашифрованных данных.
Вот хорошая ссылка для изменения размера, когда LVM
находится поверх LUKS
: https://help.ubuntu.com/community/ResizeEncryptedPartitions. Надо уметь адаптировать это наоборот.
Обратите внимание, что, возможно, лучше всего настроить тестовую систему для проверки процесса и/или выполнения полного обратного цикла с протестированным/проверенным процессом восстановления.