Автор Тема: Оптимизация SSD  (Прочитано 1206 раз)

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 247
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Оптимизация SSD
« : Ноябрь 07, 2016, 03:05:46 pm »
   Доброго всем времени суток! Долго бьюсь над одним решением, не получается, решил попросить помощи. Речь собственно вот о чем:

-  решил оптимизировать работу SSD, так как характер поставленной задачи затрет диск через год, полтора. Идея в том, чтобы на ssd ничего не записывалось (кроме установленных уже программ), только читалось. Все записи будут вестись на HDD, подключенный на SATA.
-  fstab не помогает. Вот почему: при выносе на HDD папки /var система потом не загружается должным образом, куча ошибок. Причина: в папке /var сидят две папки lock и run с размерностью MiB. Я так понимаю, что эти папки уже сидят в оперативной памяти. Но кто их туда вынес? fstab ведь пустой! Копаем дальше....
- из serial log понял, что загрузкой в lubuntu заправляют systemd и upstart. Видимо где-то в них прописаны эти папки в оперативную память. Но где - не могу найти. Гугл подсказывает какие-то папки и файлы, но у себя я их не нашел.   :'(
-  оставлять их в том виде, в котором они есть - это надо будет разбить HDD дисков на 15-20 штук. Это не продуктивно, не пойдет.

   Вопрос: кто-нибудь сталкивался с таким решением оптимизации SSD или работой systemd и upstart? Подскажите, где копать? Ежели я чего-то упустил или недопонимаю - особо не пинайте. windowsuser.
Orange Pi Plus

Оффлайн igzero

Re: Оптимизация SSD
« Ответ #1 : Ноябрь 07, 2016, 03:19:24 pm »
   Доброго всем времени суток! Долго бьюсь над одним решением, не получается, решил попросить помощи. Речь собственно вот о чем:

-  решил оптимизировать работу SSD, так как характер поставленной задачи затрет диск через год, полтора. Идея в том, чтобы на ssd ничего не записывалось (кроме установленных уже программ), только читалось. Все записи будут вестись на HDD, подключенный на SATA.
-  fstab не помогает. Вот почему: при выносе на HDD папки /var система потом не загружается должным образом, куча ошибок. Причина: в папке /var сидят две папки lock и run с размерностью MiB. Я так понимаю, что эти папки уже сидят в оперативной памяти. Но кто их туда вынес? fstab ведь пустой! Копаем дальше....
- из serial log понял, что загрузкой в lubuntu заправляют systemd и upstart. Видимо где-то в них прописаны эти папки в оперативную память. Но где - не могу найти. Гугл подсказывает какие-то папки и файлы, но у себя я их не нашел.   :'(
-  оставлять их в том виде, в котором они есть - это надо будет разбить HDD дисков на 15-20 штук. Это не продуктивно, не пойдет.

   Вопрос: кто-нибудь сталкивался с таким решением оптимизации SSD или работой systemd и upstart? Подскажите, где копать? Ежели я чего-то упустил или недопонимаю - особо не пинайте. windowsuser.

Так сделано у меня
Цитировать
Внес некоторые изменения для сохранения целостности системы, а именно:
Цитировать
разбил диск на 4 раздела
УстройствоТочка
монтирования
РазмерТип ФС
опции
Описание
/dev/mmcblk0p1/ (root)3GEXT4 Read Only, выключено журналирование
Подробности: https://wiki.debian.org/ReadonlyRoot
Boot и система
/dev/mmcblk0p2/var1.4GEXT4 Read/Write, has_journalФС для служебных пулов и логов,
сюда также перенесен пользовательский каталог /home
(т.к. в системе кроме рута у меня всего один живой юзер opi,
то минимальная правка в файле /etc/passwd (команда vipw) — исправить у opi /home/opi на /var/home/opi
/dev/mmcblk0p3/usr/local1GEXT4 Read/Write, has_journalисходные коды различных пакетов ( в том числе CarPC),
некоторые служебные файлы и файлы настроек ( в том числе для CarPC)
/dev/mmcblk0p4/mnt/video2GEXT4 Read/Write, has_journalФС для записи видеоархива

Цитировать
Суть этих манипуляций такова — что система в любом случае будет жива. Интенсивная запись только видеоархив, сбой на /var - тоже нестрашно. Для восстановления понадобится минимум "телодвижений" (создать руками структуру /var и можно грузиться, или  поставить базовую систему и накатить по верху образ /dev/mmcblk0p1 изменив после этого /etc/fstab на предмет /var, монтирования root в Read/Write *сделан SNAPSHOT ./ с /dev/mmcblk0p2 в точку монтирования /var на /dev/mmcblk0p1
Еще под Ubuntu есть пакет overlayroot
Может и в лубунте он есть?
apt-cache search overlayroot
« Последнее редактирование: Ноябрь 07, 2016, 03:22:25 pm от igzero »

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 247
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: Оптимизация SSD
« Ответ #2 : Ноябрь 07, 2016, 09:11:26 pm »
   igzero, разбить диск - не проблема. Проблема вынести папку /var из SSD на другой (HDD) диск. fstab - бессилен. Весь вопрос в том - КАК ЭТО СДЕЛАТЬ? Конкретно в lubuntu. Потому что в других системах изначально в tmpfs вынесены другие папки, а может и вовсе не вынесены.
   Или по другому задам вопрос: как папки /var/lock и /var/run вернуть из tmpfs на SSD?
Orange Pi Plus

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 416
  • Лайков: 110
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Оптимизация SSD
« Ответ #3 : Ноябрь 08, 2016, 06:28:05 am »
У меня сейчас под рукой армбиан, там /var/run и /var/lock - ссылки на /run и /run/lock
если так-же, то можно попробовать так:
Сделай раздел на HDD и скопируй на него /var целой папкой.
Сделай скрипт, который будет проверять наличие HDD,
при наличии монтировать к примеру /dev/sda1 в /mnt/sda1
далее проверяем наличие папки /mnt/sda1/var и если она есть монтируем её следующим образом:
mount /mnt/sda1/var/ /var/ -o bind
и пропиши его запуск его в автозагрузку.
Плюс - при отсутствии HDD система остается рабочей, при наличии - /var фактически будет переключен на HDD.
Но если /var/run и /var/lock не ссылки, а реальные точки монтирования, что может помешать монтированию, то в скрипте нужно будет монтировать не весь /var а отдельно каждую папку в нем (или только те, что тебе нужны).

Оффлайн igzero

Re: Оптимизация SSD
« Ответ #4 : Ноябрь 08, 2016, 07:00:53 am »
я понял тебя. Поэтому все что я писал выше несовсем то.
Ищи скрипт в /etc/init.d который монтирует /var/run в tmpfs
Самое простое сделать /etc/rc.local который будет делать примерно то что посоветовал AlDemin выше
« Последнее редактирование: Ноябрь 08, 2016, 07:10:35 am от igzero »

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 247
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: Оптимизация SSD
« Ответ #5 : Ноябрь 10, 2016, 03:22:22 pm »
   Отыскал я, как мне кажется, скрипт в /etc/init.d, в котором что-то делается с /var/lock и /var/run. Скрипт umountnfs.sh. Заремил эти строчки, но ничего не получилось. Сань, ты говорил о ссылках. Да, на значках этих папок присутствуют стрелки, как на ярлыках в винде. Как их прописать в скрипте, точно не понял, т.к. не могу понять на каком языке написаны скрипты. Чем-то похоже на С, но не то. С таким я не знаком.  :'( Что это за язык? Хочется немного понимать что там делается (в скриптах).
Orange Pi Plus

Оффлайн igzero

Re: Оптимизация SSD
« Ответ #6 : Ноябрь 11, 2016, 02:59:21 am »
   Отыскал я, как мне кажется, скрипт в /etc/init.d, в котором что-то делается с /var/lock и /var/run. Скрипт umountnfs.sh. Заремил эти строчки, но ничего не получилось. Сань, ты говорил о ссылках. Да, на значках этих папок присутствуют стрелки, как на ярлыках в винде. Как их прописать в скрипте, точно не понял, т.к. не могу понять на каком языке написаны скрипты. Чем-то похоже на С, но не то. С таким я не знаком.  :'( Что это за язык? Хочется немного понимать что там делается (в скриптах).
Этот скрипт делает unmount nfs сейчас гляну
« Последнее редактирование: Ноябрь 11, 2016, 03:36:46 am от igzero »

Оффлайн igzero

Re: Оптимизация SSD
« Ответ #7 : Ноябрь 11, 2016, 03:06:51 am »
У меня armbian
Цитировать
root@orangepipc:/etc/init.d# grep mount *.* | grep "/run"
mountall.sh:    # We might have mounted something over /run; see if
root@orangepipc:/etc/init.d#
root@orangepipc:/etc/init.d# grep "/run/lock" *
bootmisc.sh:    rm -f /tmp/.clean /run/.clean /run/lock/.clean
bootmisc.sh:    rm -f /tmp/.tmpfs /run/.tmpfs /run/lock/.tmpfs
checkroot-bootclean.sh: # Clean /tmp, /run and /run/lock.  Remove the .clean files to
checkroot-bootclean.sh: rm -f /tmp/.clean /run/.clean /run/lock/.clean
mountkernfs.sh: # Mount tmpfs on /run and/or /run/lock
umountnfs.sh:   rm -f /tmp/.clean /run/.clean /run/lock/.clean
root@orangepipc:/etc/init.d#
« Последнее редактирование: Ноябрь 11, 2016, 03:13:05 am от igzero »

Оффлайн igzero

Re: Оптимизация SSD
« Ответ #8 : Ноябрь 11, 2016, 03:30:56 am »
/etc/default/tmpfs - здесь похоже переменные вк5лючать/выключать RAMRUN RAMLOCK и их размер
/lib/init - здесь вроде стартовые скрипты за это дело...
За достоверность не ручаюсь, так по быстрому глянул
Выставь в /etc/default/tmpfs переменный RAMRUN=no RAMLOCK=no RAMSHM=no RAMTMP=no

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 247
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: Оптимизация SSD
« Ответ #9 : Ноябрь 11, 2016, 08:13:42 am »
У меня сейчас под рукой армбиан, там /var/run и /var/lock - ссылки на /run и /run/lock
если так-же, .......

А что значит ссылки на папки? Может их можно как-то убрать и потом fstab все сделает как надо.
Файла /etc/default/tmpfs у меня нету.
Orange Pi Plus

Оффлайн igzero

Re: Оптимизация SSD
« Ответ #10 : Ноябрь 11, 2016, 09:55:51 am »
У меня сейчас под рукой армбиан, там /var/run и /var/lock - ссылки на /run и /run/lock
если так-же, .......

А что значит ссылки на папки? Может их можно как-то убрать и потом fstab все сделает как надо.
Файла /etc/default/tmpfs у меня нету.
В принципе может и прокатит. Попробуй
Только тогда вот так
sudo rm -rf /var/run
sudo mkdir /var/run
sudo rm -rf /var/lock
sudo mkdir /var/lock
Но все таки к добавок к этому отключить создание и монтирование /run и /run/lock

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 247
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: Оптимизация SSD
« Ответ #11 : Ноябрь 11, 2016, 08:12:57 pm »
   Пардоньте, ребята!!!  :) Я ввел вас в заблуждение (можете попинать немножко, стонать не буду)  :D Папки /var/lock и /var/run тут ни при чём. Ботва начинается, когда переношу на HDD (через fstab) папку /var/lib. Я заглянул туда, в эту папку, а там от всех программ и не только сидят свои папочки. Если перенести lib на HDD, то старт апельсина останавливается на строчке с запуском Xserver. В папке lib ничего похожего. Я могу конечно же вычислить опытным путем, из-за чего зависает, но это будет долго, очень долго, т.к. там папок аж 63 штуки. Может поможете какой идеей, а я пока начну закидывать по одной папке на HDD.  :-\
Orange Pi Plus

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 247
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: Оптимизация SSD
« Ответ #12 : Ноябрь 11, 2016, 08:35:15 pm »
   Вот закинул на HDD первую папку /var/lib/alsa и во время старта выдало строку

serious errors were found while checing the disk drive for /var/lib/alsa

Я понимаю следующее, что из этой папки грузятся данные о состоянии программ раньше, чем примонтируется HDD. Может быть я и не прав.
Orange Pi Plus

Оффлайн igzero

Re: Оптимизация SSD
« Ответ #13 : Ноябрь 12, 2016, 03:43:15 am »
   Пардоньте, ребята!!!  :) Я ввел вас в заблуждение (можете попинать немножко, стонать не буду)  :D Папки /var/lock и /var/run тут ни при чём. Ботва начинается, когда переношу на HDD (через fstab) папку /var/lib. Я заглянул туда, в эту папку, а там от всех программ и не только сидят свои папочки. Если перенести lib на HDD, то старт апельсина останавливается на строчке с запуском Xserver. В папке lib ничего похожего. Я могу конечно же вычислить опытным путем, из-за чего зависает, но это будет долго, очень долго, т.к. там папок аж 63 штуки. Может поможете какой идеей, а я пока начну закидывать по одной папке на HDD.  :-\
Я тоже так думал, причем тут run и lock, ну будут они в памяти, места немного. Но хочешь - так хочешь :)

Вопрос: Как переносишь папки? Советую tar-ом,
Я сделал абсолютно, так как ты хочешь и никаких проблем. Смотри -  я расписывал. Переносить данные (делать snapshot ) var на диск надо на нерабочей системе. Т.е. выключаешь апельсин, вытаскиваешь SD карту. Вставляешь ее в другую машину под линухом и вперед
1) Монтируешь SD карту например так:
mkdir -p /mnt/sd
mount /dev/sdc1 /mnt/sd
/dev/sdc1 - твоя SD карта (сам смотри как она в системе определяется, может и по другому)
2) Делаешь shapshot при помощи tar под рутом или используй sudo
cd /mnt/sd/var
sudo tar -czf /root/my_sd.tgz ./
3) Правишь на своей SD fstab на предмет монтирования HDD на /var
4) Размонтируешь SD
cd /
sudo sync
sudo umount /mnt/sd
5) Разбиваешь HDD диск, создаешь слайс (раздел), монтируешь его(планируемый раздел /var) куда надо (например /mnt/hdd для наглядности)
после чего
cd /mnt/hdd
sudo tar -xzf /root/my_sd.tgz
cd /
sudo sync
sudo  umount /mnt/hdd
sudo fsck -f /dev/твой_раздел_var_на_HDD
6)После чего вставляешь/подключаешь SD и HDD в апельсин
7) Включаешь апельсин и все должно работать

« Последнее редактирование: Ноябрь 12, 2016, 03:46:45 am от igzero »

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 416
  • Лайков: 110
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Оптимизация SSD
« Ответ #14 : Ноябрь 12, 2016, 08:01:17 am »
Куайто вас понесло....
Виталь, скажи какая у тебя сейчас система, как подключаешь ssd и hdd, с чего стартуешь, я попробую повторить.