Сколько осталось памяти у RPi?

Тема в разделе "Raspberry Pi", создана пользователем Александр Земсков, 2 мар 2014.

  1. Здравствуйте, дорогие форумчане! Появилась идея одного интересного проекта... Есть несколько Raspberry pi, одна имеет ip 192.168.1.2, вторая 192.168.1.3, третья 192.168.1.4. В чем идея: первая малина - это веб- сервер + БД (в бд хранятся: ip двух других и СКОЛЬКО ОСТАЛОСЬ У НИХ СВОБОДНОГО ПРОСТРАНСТВА на картах памяти), вторая и третья - это просто БД MySQL, в которой хранятся статьи сайта.

    Подскажите, пожалуйста, как заставить вторую и третью малину передавать данные о том, сколько осталось свободного места на карте памяти в БД на первую RPi?
     
  2. NR55RU

    NR55RU Гик

    Можно поинтересоваться, для каких таких гигантских статей вы планируете иметь 3 отдельный сервера баз данных ?:)
    Даже если на малине 4 гиговая флешка .. и даже если в самом плохом случае вам достанется для базы 2 гига с флешки, чем вы ее планируете так забить что требуется 3 БД ?:)

    Ну а касательно вашего вопроса, в сущности есть ряд решений, сама MySQL можно объединить в кластеры если я не ошибаюсь но как это делается не в курсе, никогда не требовалось, но вроде как читал о нечто подобном.

    Второй способ, выделить для БД отдельную файловую систему и просто написать простершую программу которая при любом изменении свободного пространства на подчиненном RPi в данной файловой системе будет сообщать головному RPi новое значение свободного места.
    На головном получать это значение и делать с ним что желаете.

    P.s. А ведь флешка может быть и 32 гиговой :)
     
  3. Ну, идея состоит в том, чтобы создать блог+форум с возможностью бесконечного расширения места под статьи))) А, еще можно раскидать всю эту систему по разным местам => безотказность)
    +снижение нагрузок на малины, сами посудите: надо малине выгрузить, предположим, 200 статей 5 клиентам или 4 малины грузят по 50 статей тем же клиентам + если они разбросаны, то растет скорость загрузки сайта, при условии нормального по скорости соединения))
     
  4. NR55RU

    NR55RU Гик

    Все это излишне.
    Есть множество хороших принципов программировании и среди них два которые хорошо подойдут для вашей ситуации.
    1. Боритесь со сложностью
    2. Оптимизируйте лишь тогда когда эта оптимизация действительно требуется. Так как часто бывает наоборот, преждевременная попытка оптимизировать приводит к еще более плохим результатам.

    В Web программировании скорость достигается не за счет создания кластера баз данных а за счет других решений. Хотя кластер и мог бы потребоваться будь у вас проект на уровне мамбы, одноклассников, контакта и тд и тп.
    А что если ваш клиент заходит на сайт а сайт ему отдает статью даже не обращаясь к базе данных и даже не запуская PHP.
    Это называется кешированием и раздача статики.
    Реализуется это примерно так, некая программа берет вашу статью из базы обрабатывает ее создает скажем готовый HTML который вы планировали отдавать динамически и записывает все это безобразие в HTML файл. (Хотя это лишь один из вариантов, коих полно.)
    Когда приходит клиент и хочет эту статью, сервер видит что файл есть и просто отдает его с минимальными затратами ресурсов.
    Более того, недавно меня попросили помочь с одним по современным меркам не большим проектом, в нем 25 000 статей от 5 до 150кб каждая, и вся база занимала чуть больше 480 мегабайт.
    Для MySQL с правильно составленными запросами и структурой базы это не размер, щелкает как орехи.
    Но у ребят все это лежало на виртуальном хостинге с параметрами хуже чем малина, там было лишь 200мб оперативки, пару процентов процессорного времени и все.
    Сайт в сутки отдавал порядка 200 000 страниц достигая пиковой нагрузки в 300 запросов в секунду в некоторые "горячие" минуты дня.
    При работе напрямую через MySQL сайт работал без заметных проблем но по статистике сервера уже выбирал предел ресурсов ибо висящие в памяти модули уже сжирали под 120мб памяти оставляя на работу лишь чуть больше 70мб. И ребята думали как решить эту проблему или покупать более дорогой хостинг или решить для начала на уровне архитектуры проекта.
    Я как раз делал им то самое кеширование.
    Теперь все работает примерно так, если статья изменилась система обновляет HTML файл.
    При запросе статьи PHP даже не используется, файл либо есть либо его нет и все.
    А отдать статику для сервера плевое дело.
    Теперь им долго не придется беспокоится о нагрузке на сервер :)

    Так вот к чему я это все.
    Если вы просто желаете помучится ради просто попробовать все так завязать, дело хорошее, сам зачастую делаю то что делать не стоит тока ради обучения. Тогда разбирайтесь и дерзайте.
    Но если задумались что то сделать для дела, то вам так делать не стоит.
    Не надо учится решать проблемы за счет увеличения технических ресурсов учитесь решать проблемы за счет правильной и качественной реализации.
    И в Web программировании есть отдельное хорошее правило, проверил на собственной шкуре.
    Старт-ап должен быть минимальным, ибо зачастую наши ожидания весьма и весьма не совпадают с действительностью а накрутив наворотив, потом понимаем что все это было не нужно и это лишь мешает развитию :)
     
    Последнее редактирование: 6 мар 2014
    acos нравится это.
  5. Это скорее для общего развития, т.к. если бы я создавал проект не для обучения, этой статьи не было бы) Просто заказал бы хостинг с нехилыми параметрами и не парился бы)) Кстати, не подскажете, как можно осуществить linux кластер, если вообще возможно?) Еще одна безбашенная идея появилась :D
     
  6. embed

    embed Нерд

    команда df или df -h выведет объем свободного места на дисках. Передать на другой комп можно по протоколу ftp например...
     
  7. Igor68

    Igor68 Гуру

    Простите, что поднял старую, даже очень тему!
    Ещё раз простите, но новую создавать нет смысла!
    Тут в теме про дисковое пространство. А кто-нибудь использует NFS?
    Если поднять NFS как сервер на одной малине:
    https://andreyex.ru/operacionnaya-s...system-na-rhel-centos-fedora-i-debian-ubuntu/
    https://help.ubuntu.ru/wiki/nfs
    http://debian-help.ru/articles/nastroika-nfs-servera-debian/
    Вот только fstab я сам не имею желания применять.
    То примонтированный на каждой малине NFS будет общим на всех малинах. Тут хоть база данных, хоть многое другое.
    Можно сказать, что в роли самого сервера может выступать либо PC с Linux(Debian) либо одна из малин с диском на USB. А вот для монтирования я сделал бы BASH скрипт на клиентах, который сначала проверяет доступность, а потом монтирует. Таким образом диск на 1 Тб будет един для всех малин. Можно для каждой сделать и свою директорию на нём. А вот диск я взял бы не SSD а HDD коли он рабочий, а не просто для хранения. Там же можно и swap раздел если надо для каждой если уж очень надо. И директории /var (где логи и т.п.) и можно даже /tmp и др. Вот на MOXA UC-7112-LX-Plus я сделал клиента, правда к обычному PC серверу в локальной сети на работе. К нему подключено постоянно много устройств с LINUX. Про превосходчтво NFS над SAMBA тем более FTP сами почитайте.

    Прошу прощения!