LINUX.ORG.RU
ФорумAdmin

Восстановление кластера ceph

 , cephfs


0

1

Всем привет.

У меня тут большая проблема случилась с сефом. Суть: Был один монитор на node1, я решил добавить еще один на node6. node1 вылетел из кворума. Я переставил монитор, в надежде все восстановить, но сейчас я наблюдаю такую картину:

cluster d6cf08b8-eca8-4666-89a8-fcb5de7a4c72
     health HEALTH_ERR
            64 pgs stuck inactive
            64 pgs stuck unclean
            no osds
     monmap e1: 1 mons at {node1=10.102.0.1:6789/0}
            election epoch 1, quorum 0 node1
     osdmap e2: 0 osds: 0 up, 0 in
            flags noout
      pgmap v3: 64 pgs, 1 pools, 0 bytes data, 0 objects
            0 kB used, 0 kB / 0 kB avail
                  64 creating

Есть у кого мысли как все починить? Да, было 6 osd.

ceph-osd --cluster=ceph --show-config-value=fsid
d56c059b-d0e5-42aa-b56f-d3d339beb1e8

★★★★

Последнее исправление: Difrex (всего исправлений: 1)
ceph-deploy osd activate node2:/var/local/osd4
[ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (1.5.27.3): /usr/bin/ceph-deploy osd activate node2:/var/local/osd4
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  subcommand                    : activate
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7f49fef14c20>
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  func                          : <function osd at 0x7f49ff80a9b0>
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  disk                          : [('node2', '/var/local/osd4', None)]
[ceph_deploy.osd][DEBUG ] Activating cluster ceph disks node2:/var/local/osd4:
[node2][DEBUG ] connected to host: node2 
[node2][DEBUG ] detect platform information from remote host
[node2][DEBUG ] detect machine type
[ceph_deploy.osd][INFO  ] Distro info: debian 8.1 jessie
[ceph_deploy.osd][DEBUG ] activating host node2 disk /var/local/osd4
[ceph_deploy.osd][DEBUG ] will use init type: sysvinit
[node2][INFO  ] Running command: ceph-disk -v activate --mark-init sysvinit --mount /var/local/osd4
[node2][WARNIN] DEBUG:ceph-disk:Cluster uuid is 12d6847a-2975-4daa-af89-c4c8ae57fb48
[node2][WARNIN] INFO:ceph-disk:Running command: /usr/bin/ceph-osd --cluster=ceph --show-config-value=fsid
[node2][WARNIN] ceph-disk: Error: No cluster conf found in /etc/ceph with fsid 12d6847a-2975-4daa-af89-c4c8ae57fb48
[node2][ERROR ] RuntimeError: command returned non-zero exit status: 1
[ceph_deploy][ERROR ] RuntimeError: Failed to execute command: ceph-disk -v activate --mark-init sysvinit --mount /var/local/osd4

Не помогает указать fsid = 12d6847a-2975-4daa-af89-c4c8ae57fb48 в конфиге. Сам конфиг:

[global]
fsid = 12d6847a-2975-4daa-af89-c4c8ae57fb48
mon_initial_members = node1
mon_host = 10.102.0.1
auth_cluster_required = none
auth_service_required = none
auth_client_required = none
filestore_xattr_use_omap = true
public_network = 10.102.0.0/24
osd_pool_default_size = 2
osd_pool_default_pg_num = 128
osd_pool_default_pgp_num = 128

[client.radosgw.gateway]
host = node1
keyring = /etc/ceph/ceph.client.radosgw.keyring
rgw_socket_path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
log_file = /var/log/radosgw/client.radosgw.gateway.log
rgw_print_continue = false

Difrex ★★★★
() автор топика

Я переставил монитор

Что значит «переставил» и с каким монитором ты это сделал? Если ты переставил единственный монитор, который работал до этого, и при этом снёс все его данные, то шансы восстановить кластер сейчас очень маленькие.

http://docs.ceph.com/docs/master/rados/troubleshooting/troubleshooting-mon/
Тебе возможно поможет раздел «RECOVERING A MONITOR’S BROKEN MONMAP».

Deleted
()
Ответ на: комментарий от Difrex

Если у тебя там уже был osd, то делать ceph-deploy не только не нужно, но и опасно, так как ты ещё и данные себе можешь потереть. Вообще ceph-osd должен стартовать автоматически независимо от состояния мониторов. И он должен постоянно пытаться к ним подключиться (смотори список работающих процессов и логи).

И ещё: разберись какой именно ceph.conf с каким именно fsid у тебя правильный и положи его на все ноды.

Deleted
()

Ещё один важный момент: перед тем как что-то делать, нужно в логах смотреть почему именно не запускается существующий монитор, который был изначально. Иначе можно сделать хуже.

Deleted
()
Ответ на: комментарий от Deleted

В общем, хреново я сделал да.

Сейчас я сделал монитор, куда инжектнул свою карту и смог туда подцепить osd.

Но в логах я вижу такое:

2016-02-27 13:23:32.684723 7fb796e1f700  0 -- 0.0.0.0:6801/26085 >> 10.102.0.5:6805/17397 pipe(0x16df3000 sd=28 :60585 s=1 pgs=0 cs=0 l=0 c=0x4c5da20).fault with nothing to send, going to standby
2016-02-27 13:23:32.684721 7fb796f20700  0 -- 0.0.0.0:6801/26085 >> 10.102.0.2:6801/1921 pipe(0x16dee000 sd=27 :38214 s=1 pgs=0 cs=0 l=0 c=0x4c5d8c0).connect claims to be 10.102.0.2:6801/32156 not 10.102.0.2:6801/1921 - wrong node!
2016-02-27 13:23:32.684741 7fb796f20700  0 -- 0.0.0.0:6801/26085 >> 10.102.0.2:6801/1921 pipe(0x16dee000 sd=27 :38214 s=1 pgs=0 cs=0 l=0 c=0x4c5d8c0).fault with nothing to send, going to standby
2016-02-27 13:23:32.684772 7fb796d1e700  0 -- 0.0.0.0:6801/26085 >> 10.102.0.4:6801/2014878 pipe(0x16e14000 sd=29 :57065 s=1 pgs=0 cs=0 l=0 c=0x4c5db80).connect claims to be 10.102.0.4:6801/16377 not 10.102.0.4:6801/2014878 - wrong node!
ceph -s
    cluster 12d6847a-2975-4daa-af89-c4c8ae57fb48
     health HEALTH_WARN
            64 pgs stuck inactive
            64 pgs stuck unclean
            too few PGs per OSD (9 < min 30)
            7/7 in osds are down
     monmap e1: 1 mons at {node1=10.102.0.1:6789/0}
            election epoch 2, quorum 0 node1
     osdmap e26: 7 osds: 0 up, 7 in
      pgmap v27: 64 pgs, 1 pools, 0 bytes data, 0 objects
            0 kB used, 0 kB / 0 kB avail
                  64 creating

Difrex ★★★★
() автор топика
Ответ на: комментарий от Difrex

Но в логах я вижу такое:

А что вообще на этих нодах и этих портах работает?

ceph -s

Куда делись OSD? И почему их теперь семь, хотя сначала ты сказал, что их шесть?

Deleted
()
Ответ на: комментарий от Deleted

Да я хз. Кластер не реанимировался. Сделал новый с тремя мониторами, двумя mds и radosgw. Выдрал данные(хорошо, что всего около 1Т) и скриптом через python-swiftclient загнал их в новый кластер.

Впредь буду внимательней читать документацию :D.

Все, что было на cephfs регулярно бекапилось и с восстановлением проблем не было.

Difrex ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.