Ответы пользователя по тегу Linux
  • Можно ли создать raid1 из 2 дисков, если на одном есть данные, не потеряв их?

    Melkij
    @Melkij
    PostgreSQL DBA
    Массив можно создать в деградировавшем виде:
    mdadm -C /dev/md0 -l 1 -n 2 missing /dev/sdc
    Затем скопировать данные на массив
    rsync sdb -> md0
    И добавить диск в массив
    mdadm /dev/md0 -a /dev/sdb
    Ответ написан
    7 комментариев
  • Как увеличить размер / в Ubuntu 16 server?

    Melkij
    @Melkij
    PostgreSQL DBA
    Судя по характерному имени блочного устройства - у вас система стоит на LVM.
    Соответственно помимо увеличения блочного устройства и расширения ФС необходимо сказать LVM, что блочное устройство стало побольше и сказать увеличить логический том.
    pvresize /dev/sda5
    lvextend -l +100%FREE /dev/mapper/ubuntu--vg-root

    Затем уже resize2fs
    Ответ написан
    1 комментарий
  • Стоит ли устанавливать ОС (LInux) на флешку для домашнего мини-сервера?

    Melkij
    @Melkij
    PostgreSQL DBA
    Если отключить swap на ней, я так подозреваю все равно кол-во записей на отказ будет не большим...

    Зато останется чтение. https://habrahabr.ru/post/214803/
    Флешку можно ушатать за пару месяцев.

    Не пожалейте дикой ёмкости аж в 2гб с каждого диска, поставьте систему на raid1. А остальную ёмкость дисков размечайте уже как нравится.
    При переустановке системы нормальный установщик софтрейд найдёт и соберёт сам.
    Ответ написан
    Комментировать
  • Что будет с Ubuntu 14.04 LTS после окончания поддержки?

    Melkij
    @Melkij
    PostgreSQL DBA
    На домашнем сервере пока можно и дебиан развернуть. После установки поставить нормальный init и выбросить поттерингд.
    lxc, помнится, не прибит ещё гвоздями. В отличии от libvirt, который уже прибит к policykit, но только на уровне прописанных в пакете зависимостях, а после ручной правки манифеста ставится и работает нормально.

    До такого вот состояния можно и десктоп исправить:
    melkij@melkij-work:~$ dpkg -l | grep systemd
    ii  libsystemd0:amd64                     215-17+deb8u7                        amd64        systemd utility library
    ii  libsystemd0:i386                      215-17+deb8u7                        i386         systemd utility library
    melkij@melkij-work:~$ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Debian
    Description:	Debian GNU/Linux 8.8 (jessie)
    Release:	8.8
    Codename:	jessie
    melkij@melkij-work:~$

    Если только пару пакетов взять с devuan через apt-preferences:
    Package: *
    Pin: origin packages.devuan.org
    Pin-Priority: 50
    
    Package: libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 policykit-1 udisks2 libudisks2-0 cgmanager libcgmanager0
    Pin: origin packages.devuan.org
    Pin-Priority: 700
    
    Package: systemd systemd:amd64 systemd:i386
    Pin: origin
    Pin-Priority: -1
    
    Package: pulseaudio pulseaudio:amd64 pulseaudio:i386
    Pin: origin
    Pin-Priority: -1

    Что-то около года полёт нормальный.
    Ответ написан
    Комментировать
  • Почему не работает ssh после установки разрешённых ip адресов?

    Melkij
    @Melkij
    PostgreSQL DBA
    ListenAddress - это тот адрес, который демон непосредственно слушает, а не тот, откуда он ждёт пакеты.
    Разумеется, если указать какой-то адрес, которого на этой машине нет - демону не получится привязать сокет.
    Ответ написан
    3 комментария
  • Как с помощью cat записать Exception возникающий в файл?

    Melkij
    @Melkij
    PostgreSQL DBA
    Ошибки принято в stderr писать, а вы только stdout перенаправляете.
    cmd 2> stderr_stream
    Ответ написан
  • Как инициализировать файлы Postgresql?

    Melkij
    @Melkij
    PostgreSQL DBA
    sudo rm -rf /var/lib/postgresql

    Это был home dir пользователя, а не каталог кластера. Каталог кластера в дефолтной поставке в /var/lib/postgresql/версия_pg/ещё_одна_директория_main_или_base

    sudo mkdir /media/ad/data/bd1c

    Допустим.

    su postgres -c '/usr/lib/postgresql/9.6/bin/initdb -D media/ad/data/bd1c --locale=ru_RU.UTF-8'

    Внимание на относительный путь. Я не уверен, где в итоге initdb пытался сделать базу.

    привел к виду
    data_directory = '/var/lib/pgsql'

    ? Откуда это здесь взялось?

    какой из postgresql.conf главнее

    Тот, который указан в аргументах запуска postgres. Явным образом через -c config_file либо находящийся в PGDATA в случае отсутствия аргумента с именем конфига.
    Ответ написан
    Комментировать
  • Какой должен быть размер базы при дампе?

    Melkij
    @Melkij
    PostgreSQL DBA
    Во-первых, индексы. В sql-дампе любой индекс - это несколько десятков байт запроса на создание индекса. В базе - это развесистая структура, которая может занимать порядочно места. Один индекс обычно небольшой - но у вас же он не один?
    Во-вторых, как уже упомянули - бинарные файлы могут быть раздуты из-за delete и update запросов, если плохо настроен автовакуум. Касается как самих таблиц, так и индексов.
    Третье: например табличка связей из тройки интов. В pg_dump данные пишутся через copy - один заголовок, следом все строки, значения разделены табуляцией. Итого 3 байта на строку данных оверхеда + строковое представление значения. В реальной таблице - у каждой строки есть заголовок из 23 байт. Плюс выравнивание данных. Итого минимум будет 36 байт на каждую строку. (описание структуры таблицы опять же отдельно хранится) Т.е. текстовый вид внезапно компактнее почти на всём диапазоне значений инта для этой таблички.

    Так что да, текстовый дамп может весить сильно меньше бинарного за счёт исключения всех служебных структур.
    Ответ написан
    1 комментарий
  • Сколько места для файлов в RAID 1 массиве (два диска по 1 Tb)?

    Melkij
    @Melkij
    PostgreSQL DBA
    Отмонтируйте файловую систему и сделайте глупый dd if=/dev/md0 of=/dev/раздел большого диска. И будет копия целиком файловой системы со всеми софт/хардлинками, разреженными файлами и всем чем надо. Затем resizee2fs для расширения ФС до ёмкости раздела.

    А если вы хотите плавно заменить массива на более ёмкие - то вам вообще файлы копировать не надо. Добавить диски побольше, подождать синхронизацию, удалить старые диски и сделать resize2fs ru.stackoverflow.com/a/637847/203622
    Ответ написан
  • Open-iscsi: Как включить writeback / увеличить скорость записи на mdadm RAID-5/6?

    Melkij
    @Melkij
    PostgreSQL DBA
    производительность будет упираться в скорость 1 диска, т.к. после каждой записи нужно будет обновлять диск паритета

    Это raid4 с отдельным диском под хранение избыточности.
    В 5 и 6 избыточные блоки размазываются равномерно по всем дискам массива, а не выделяется отдельный диск для хранения избыточного блока.

    /sys/block/md?/md/stripe_cache_size поправили? Bitmap внутренний/внешний/отключен? С внутренним производительность записи тоже неплохо просаживается.
    Ответ написан
  • Как использовать видеокарту в контейнере LXC?

    Melkij
    @Melkij
    PostgreSQL DBA
    Основополагающий фокус - LXC - это контейнер, а не виртуальная машина. Поэтому надо не пробрасывать видеокарту, а разрешить к оной доступ.
    Например, из гугла пример для nvidia: sqream.com/setting-cuda-linux-containers-2
    Обратите внимание, что драйвер требуется установить и на хост-систему и в сам контейнер. При том, емнип, строго одной версии, т.к. драйвер из контейнера будет общаться с модулем ядра хостовой системы.

    PS: теория. В своей практике я не разобрался, как контейнеру отдать встроенный intel gpu, при активной radeon дискретке на хост-системе.
    Ответ написан
    3 комментария
  • Почему не меняется размер раздела LVM?

    Melkij
    @Melkij
    PostgreSQL DBA
    Блочное устройство увеличили, ок. А файловую систему кто расширять будет? resize2fs, xfs_growfs и т.д. в зависимости от того, какая у вас ФС.
    Ответ написан
    Комментировать
  • Сильная нагрузка на CPU при выполнении apt-get\aptitude update. Как побороть?

    Melkij
    @Melkij
    PostgreSQL DBA
    Попробуйте выключить package diff: https://debian-administration.org/article/439/Avoi...

    Это актуально для raspberrypi, где и видел комментарий, что на слабых cpu pdiff лучше выключить. Вам вероятно тоже поможет.
    Ответ написан
  • Как отобразить ошибку 500?

    Melkij
    @Melkij
    PostgreSQL DBA
    /etc/php/7.0/cli/php.ini

    Перезапускаю nginx и php7.0-fpm

    А почему что-то должно было измениться на веб-морде?
    Ответ написан
    4 комментария
  • Какую выбрать конфигурацию RAID для домашнего NAS?

    Melkij
    @Melkij
    PostgreSQL DBA
    Софтовый рейд вас не ограничивает глупостями вроде 1 диск может быть только в одном массиве. Можно разделы одного диска объединять в разные массивы.
    Пилить диски можно как угодно. Например, распилить 3тб диски каждый на два раздела: по 1 и по 2тб каждый. Собрать в итоге два raid5: 3 тома по 1тб и три по 2тб. Итого 6тб форматированной ёмкости, допустимо выпадение любого диска массива. При необходимости в едином куске места - поверх этого развернуть LVM.
    Наращивать можно дисками любого размера, условие одно: добавляемый том не меньше используемого размера тома в действующем массиве.

    Про raid5 в домашних NAS - у меня два диска разом за 8 лет не умирало. Дефолтно в debian включен кроновый скрипт верификации всех софтовых рейдов раз в месяц. Пару дисков проблемных он и обнаружил заблаговременно.
    Но вот два диска разом выпасть из массива - это было. Кабель питания отошёл. Собрать обратно массив удалось, а вот ФС побилась. Но у меня был бекап, потеряны только неважные данные.

    Если нет никакой возможности использовать географически-удалённое место для бекапа, то для бекапа можно выделить области на этих дисках. Только не в составе чего-то сложного (lvm, raid) и не на том же диске, где лежит основная копия! Можно использовать raid1 при необходимости продолжать работу при отказе диска - зеркало хоть восстанавливать просто и достаточно одного любого диска.
    Например, порезать 3тб диски на два раздела: 2тб и 1 тб. Затем собрать raid5 на трёх 2тб томах - под всякое не очень нужное. Три раздела по 1 тб - под важные данные. Можно собрать raid1 из двух дисков. Но не как зеркало из всех 3 дисков! Это только от физической поломки поможет, а от проблемы с ФС - уже нет. Один раздел не должен быть примонтирован постоянно, монтируется только на время бекапа основной части. rsync в кроне как самый простой вариант. Лучше бы, как уже советовали, 3 независимых тома: актуальная копия, горячий регулярный бекап, последний диск под холодный бекап, его физически отключать (можно сколхозить автоматический девайс для размыкания цепей на твердотельных реле).
    Ответ написан
    Комментировать
  • Как сэкономить ресурсы оперативной памяти при кодинге в Ubuntu?

    Melkij
    @Melkij
    PostgreSQL DBA
    swap в наличии. Так что описываемое поведение вполне норма, когда начинает подходить к концу свободная памяти и ОС лезет в swap (что можно проконтролировать вызовом free при начале проблем). Немного странно выглядят падения расширений, но, возможно, их отстреливает хром за слишком долгий отклик.
    Для начала стоит покрутить swappiness, чтобы ОС лезла в свап только в крайнем случае.
    Затем поиграть в Zswap, zram. Что порежет производительность CPU, но поможет от нехватка памяти.

    Раз на всё памяти не хватает - то есть варианты действий:
    - отчаянно тормозить в свапе
    - звать на помощь OOM killer, который будет убивать какой-нибудь на его усмотрение бесполезный процесс. Для этого достаточно вырубить swap и ядро само позовёт при необходимости.
    - добавлять память
    - уменьшать потребление памяти. Следить, кто сколько памяти жрёт, может у вас кто-нибудь не особо нужный просто течёт по памяти. Можно запускать текущие процессы в cgroup с жёстким лимитом памяти, тогда они будутт отстреливаться при превышении лимита.
    Ответ написан
    1 комментарий
  • Как сделать два монитора с двумя учетными записями?

    Melkij
    @Melkij
    PostgreSQL DBA
    https://habrahabr.ru/post/312900/
    К сожалению, пока потребуется отдельная видеокарта для каждого места.
    Ответ написан
    3 комментария
  • Какие существую способы стабилизации процессов в linux?

    Melkij
    @Melkij
    PostgreSQL DBA
    Странное что-то рассказываете. У вас железо-то вообще исправно? memtest?
    sysrq жив? Скорей всего жив, раз вы можете на tty переключиться. Посмотрите, что ядро ответит https://en.wikipedia.org/wiki/Magic_SysRq_key
    Ответ написан
    3 комментария
  • Как перенести систему на другой диск большего размера?

    Melkij
    @Melkij
    PostgreSQL DBA
    Будет работать. Даже fstab править не нужно.
    Дополнительные действия нужны будут, если захотите как-то использовать свободное место с бОльшего диска.
    Ответ написан
    Комментировать
  • Какие есть дистрибутивы Linux с оптимизацией менеджера пакетов в сторону многопоточной загрузки?

    Melkij
    @Melkij
    PostgreSQL DBA
    Если правильно помню, Tor архитектурно открывают кучу соединений. А дебиан недавно вывесил зеркало пакетов напрямую в tor: https://habrahabr.ru/post/307208/
    Попробуйте.

    UPD: неправильно помню. Tor работает поверх одного соединения, которое периодически изменяется.
    Полезных мыслей пока нет.
    Ответ написан