Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Работа в ИТ в США, это сказка для граждан США с ИТ образованием. Наши реалии в России в наши будущие 60 лет, это то, что наши резюме будут обходить стороной девочки рекрутеры, понимая, что клиент по головке их не погладит за кадра, который капризничает, пытается строить свом порядки и работает по интересу, плюс имеет пр0#бы в силу своей производительности из-за своего возраста и физиологии в свои 60.

А если у меня в Рашке запрос по вертикальному росту, то его можно просто засунуть себе в зад. Это в США тебе скажут "давай разминайся, приседай, отжимайся, щас в гонке участвовать будешь, только MBA не забудь". Чтобы расти в России в ИТ, нужны как всегда связи, инфраструктуру везде возглавляют как правило "свои" люди. Рост из штата - редкий кейс

А смысл? Уходить на работу с прежней оплатой? Получается с одной помойки переезжаешь на другую, потому что старая - надоела. Я не вижу смысла уходить на новое место, если там не предлагают минимум 100К ₽ +

Решение не очень, всякие GlusterFS, OCFS, HDFS это overhead на запись
Вот здесь я не совсем согласен по поводу двухнодовых кластеров, у многих простая потребность: в одном data-центре и в одном сетевом сегменте организовать autofailover из двух железок. Зависит всё от условий и системы, если этой какой-то коммерческий проект, то конечно можно размазать кворумный кластер по 3м разным облачным сервисам/data-центрам. У нас много правительственных организаций которые обладают нехилыми data-центрами в рамках которых требуется обеспечить примитивную отказоустойчивость БД для какой-нибудь системы, почему сразу ручной режим, если низкие SLA
А можно поподробнее, хочется глазами увидеть и пощупать руками
+ не раскрыта тема конфигурации в части PostgreSQL для pcs
Вопрос, как и ко всем этим хреновым инструментариям, которые не решают проблему. Пришёл на master долгоиграющий ALTER TABLE, который успешно просочился в бинарных логах на слейвы, в этот момент у нас факап на мастере и неважно что руки/patroni/Pacemaker и т.д. один из слейвов переключает в режим master'а, который из бинлога разгребает долгоиграющий ALTER TABLE. Как Pacemaker узнает о долгоиграющем ALTER TABLE и поймёт когда SLAVE его разгребёт, чтобы сделать его мастером?
Всем привет! Собсотвенно начитался этой статьи и docs.docker.com/engine/userguide/networking/get-started-macvlan/#pre-requisites
Выполнил простые настройки:
# docker network create -d macvlan --subnet=172.16.80.0/23 --gateway=172.16.80.1 -o parent=ens192 pub_net 
# docker run --net=pub_net --ip=172.16.80.60 -i --name test -d centos


Заходим на контейнер test пингуем дефолтный гейт 172.16.80.1 — ни фига из сети 172.16.80.0/23 IP-адрес 172.16.80.60 тоже не пингуется, ну что ещё сделать я не знаю
На хост-машине фаервол и SELinux выключены, в сети фаерволов нету
Я считаю ocfs2 — изврат, gfs — фуфло, которое имеет ряд условий с дедлоками, нормальное и рабочее решение — GlusterFS.
Да не будет это работать, если просто по дефолту установить и запустить etcd, его нужно конфигурить, иначе patroni выдаст:
EtcdKeyNotFound: Key not found : /service/postgre_cluster/leader

Но для работы Consul минимум 3 ноды, на 2х нодах etcd не заводится тоже пока
Не подскажете какой DCS я могу использоваться для организации failover'а master-slave из 2х нод?
Да, я планирую запустить 2е ноды master-slave
Вот по такому шаблону eax.me/consul можно сконфигурить Consul под Postgre для последующей интеграции patroni?
# cat /etc/patroni/postgres.yml
name: db01
scope: &scope db

consul:
  host: 127.0.0.1:8500


restapi:
  listen: 0.0.0.0:8080
  connect_address: 172.16.128.70:8080
  auth: 'username:test'

bootstrap:
  dcs:
    ttl: &ttl 30
    loop_wait: &loop_wait 10
    maximum_lag_on_failover: 1048576 # 1 megabyte in bytes
    postgresql:
      use_pg_rewind: true
      use_slots: true
      parameters:
        archive_mode: "on"
        wal_level: hot_standby
        archive_command: mkdir -p ../wal_archive && cp %p ../wal_archive/%f
        max_wal_senders: 10
        wal_keep_segments: 8
        archive_timeout: 1800s
        max_replication_slots: 5
        hot_standby: "on"
        wal_log_hints: "on"

pg_hba:  # Add following lines to pg_hba.conf after running 'initdb'
  - host replication replicator 172.16.0.0/12 md5
  - host all all 0.0.0.0/0 md5

postgresql:
  listen: 0.0.0.0:5432
  connect_address: 172.16.128.70:5432
  data_dir: /var/lib/pgsql/9.6/data
  pg_rewind:
    username: superuser
    password: test
  pg_hba:
  - host all all 0.0.0.0/0 md5
  - hostssl all all 0.0.0.0/0 md5
  replication:
    username: replicator
    password: test
    network:  172.16.0.0/12
  superuser:
    username: superuser
    password: test
  admin:
    username: admin
    password: test
  restore: /usr/bin/patroni_wale_restore


# netstat -nap | grep consul
tcp        0      0 127.0.0.1:8400          0.0.0.0:*               LISTEN      2737/consul
tcp        0      0 127.0.0.1:8500          0.0.0.0:*               LISTEN      2737/consul
tcp        0      0 127.0.0.1:8600          0.0.0.0:*               LISTEN      2737/consul
tcp6       0      0 :::8300                 :::*                    LISTEN      2737/consul
tcp6       0      0 :::8301                 :::*                    LISTEN      2737/consul
tcp6       0      0 :::8302                 :::*                    LISTEN      2737/consul
udp        0      0 127.0.0.1:8600          0.0.0.0:*                           2737/consul
udp6       0      0 :::8301                 :::*                                2737/consul
udp6       0      0 :::8302                 :::*                                2737/consul
unix  3      [ ]         STREAM     CONNECTED     83481    2737/consul


Вот что journalctl говорит по поводу consul:
Sep 11 15:09:23 db01.localdomain consul[2737]: 2017/09/11 15:09:23 [ERR] agent: failed to sync remote state: No cluster leader
Sep 11 15:09:27 db01.localdomain consul[2737]: 2017/09/11 15:09:27 [ERR] agent: coordinate update error: No cluster leader
Sep 11 15:09:44 db01.localdomain consul[2737]: 2017/09/11 15:09:44 [ERR] agent: coordinate update error: No cluster leader
Sep 11 15:09:52 db01.localdomain consul[2737]: 2017/09/11 15:09:52 [ERR] agent: failed to sync remote state: No cluster leader

# consul members
Node                Address             Status  Type    Build  Protocol  DC
db01.localdomain  172.16.128.70:8301  alive   server  0.6.4  2         dc1


Мне всё-таки очень интересно запустить этот «автомат» master-slave.
У меня такое ощущение судя по либам patroni, что он сам должен был с consul'ом разобраться
Запустить Patroni я так и не смог, что я только не делал с Consul'ом, убил несколько дней, но Patroni кричал:
INFO: waiting on consul


Поэтому решение с Patroni достаточно мутное, хотите нормальный PostgreSQL кластер не лепите велосипед, надо брать Postgres Pro Enterprise.
Ни разу не прозрачнее для тех кто не имел дело с DSC. Как я выяснил Patroni сам не заведёт Consul и etcd по которым документации с гулькин нос и надо вшиваться в DSC, чтобы понять как запустить всю эту связку
Подскажите что мне делать с Консулом:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/patroni/dcs/consul.py", line 154, in refresh_session
    return self.retry(self._do_refresh_session)
  File "/usr/lib/python2.7/site-packages/patroni/dcs/consul.py", line 116, in retry
    return self._retry.copy()(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/patroni/utils.py", line 269, in __call__
    raise RetryFailedError("Exceeded retry deadline")
RetryFailedError: 'Exceeded retry deadline'
2017-09-07 18:47:05,073 INFO: waiting on consul
2017-09-07 18:47:20,057 ERROR: refresh_session
C consul'ом я так понял нужен не только питоновский модуль python-consul, но и Consul server www.consul.io/downloads.html и я думал patroni с запуском и конфигурацией consul или etcd сам разберётся. Если использую Consul, ругается что не может подключиться к my_internal_ip:8500, если etcd, то говорит:
EtcdKeyNotFound: Key not found: /service/my-db-cluster/leader
C consul'ом я так понял нужен не только пионовский модуль
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность