LINUX.ORG.RU

Закончилось место на OSD в CEPH, что делать?

 


0

3

Помогите разобраться с CEPH

Для теста развернул на одной машине CEPH. Ставил через ceph-depoy.

В качестве OSD использую директории на диске

Создал 7 директорий:

/opt/osd1
/opt/osd2
/opt/osd3
...
/opt/osd7

поднял rados gateway в итоге получилось 6 пулов:

#ceph osd pool ls
.rgw.root
default.rgw.control
default.rgw.meta
default.rgw.log
default.rgw.buckets.index
default.rgw.buckets.data

Для теста выставил следующие параметры:

osd pool default size = 1
osd pool default min size = 1
osd pool default pg num = 30
osd pool default pgp num = 30

В ходе теста CEPH предупредил что заканчивается место на одном OSD. Я решил, что поможет добавление нового OSD и CEPH сам перераспределит данные ( я был не прав!) Сейчас статус ceph стал таким:

~# ceph -s
  cluster:
    id:     3ed5c9c-ec59-4223-9104-65f82103a45d
    health: HEALTH_ERR
            Reduced data availability: 28 pgs stale
            1 slow requests are blocked > 32 sec. Implicated osds 0
            4 stuck requests are blocked > 4096 sec. Implicated osds 1,2,5

  services:
    mon: 1 daemons, quorum Rutherford
    mgr: Ruerfr(active)
    osd: 7 osds: 6 up, 6 in
    rgw: 1 daemon active

  data:
    pools:   6 pools, 180 pgs
    objects: 227 objects, 2.93KiB
    usage:   23.0GiB used, 37.0GiB / 60GiB avail
    pgs:     152 active+clean
             28  stale+active+clean

место на OSD закончилось и он ушел в статус down:

# ceph osd tree
ID CLASS WEIGHT  TYPE NAME           STATUS REWEIGHT PRI-AFF
-1       0.06857 root default
-3       0.06857     host Rutherford
 0   hdd 0.00980         osd.0           up  0.95001 1.00000
 1   hdd 0.00980         osd.1           up  0.90002 1.00000
 2   hdd 0.00980         osd.2           up  0.90002 1.00000
 3   hdd 0.00980         osd.3         down        0 1.00000
 4   hdd 0.00980         osd.4           up  1.00000 1.00000
 5   hdd 0.00980         osd.5           up  1.00000 1.00000
 6   hdd 0.00980         osd.6           up  1.00000 1.00000

Я понимаю что проблема в моем не понимании работы CEPH, но к сожалению сам найти решение не смог, поэтому прошу помощи. Вопросы на которые я так и не смог ответить:

  • Как сейчас восстановить работу CEPH, место на диске есть. Создать OSD могу , но как заставить CEPH перераспределить данные с одного OSD на другие ?
  • Почему CEPH писал данные только на один OSD, я изначально создавал их 7 штук ?

содержимое /etc/ceph.conf:

[global]
fsid = 1ed3ce2c-ec59-4315-9146-65182123a35d
mon_initial_members = Rut4erfor
mon_host = 8.3.5.1
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

osd pool default size = 1
osd pool default min size = 1
osd pool default pg num = 30
osd pool default pgp num = 30
[osd]
osd max object size = 1073741824
osd max write size = 1073741824

Почему CEPH писал данные только на один OSD, я изначально создавал их 7 штук ?

Покажи

ceph osd df
и
ceph pg ls | tail -20

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)

osd pool default size = 1 osd pool default min size = 1

Перевод: «я хочу потерять данные, когда с одним osd что-то плохое произойдет».

Надо хотя бы в 2 оба параметра выставить.

А так у тебя один osd ушел в down, вместе с единственной копией данных, которая там была.

osd pool default pg num = 30

Мало. Их должно быть в общей сложности (т.е. с учетом копий) 100 на каждый osd.

Итого: пересоздавай кластер.

AEP ★★★★★
()

Ну и по поводу отсутствующих знаний: есть еще проблема отсутствия неустаревшей литературы, и проблема ужасной документации (оно все еще акцентируют внимание на filestore, который уже давно не нужен, так как есть bluestore). И вообще проблема сакральных знаний, которыми спецы делятся только за мегабаксы.

Советую записаться вот на этот курс, так как других хороших источников я просто не знаю: https://slurm.io/ceph

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

Прежде всего спасибо что откликнулись ! вот данные которые просили:

 ceph osd df
ID CLASS WEIGHT  REWEIGHT SIZE   USE     DATA    OMAP   META    AVAIL   %USE  VAR  PGS
 0   hdd 0.00980  0.80005  10GiB 9.88GiB 57.4MiB 220KiB 9.83GiB  119MiB 98.84 3.42  36
 1   hdd 0.00980  0.75006  10GiB 9.88GiB 56.6MiB 305KiB 9.83GiB  119MiB 98.84 3.42  26
 2   hdd 0.00980  0.75006  10GiB 9.89GiB 55.9MiB 371KiB 9.83GiB  117MiB 98.86 3.42  11
 3   hdd 0.00980        0     0B      0B      0B     0B      0B      0B     0    0  28
 4   hdd 0.00980  1.00000  10GiB 2.85GiB 57.7MiB     0B 2.79GiB 7.15GiB 28.47 0.99 140
 5   hdd 0.00980  1.00000  10GiB 2.48GiB 57.8MiB     0B 2.43GiB 7.52GiB 24.84 0.86 127
 6   hdd 0.00980  1.00000  10GiB 2.74GiB 57.7MiB     0B 2.68GiB 7.26GiB 27.37 0.95 136
 7   hdd 0.00980  1.00000  10GiB 1.32GiB 57.7MiB     0B 1.26GiB 8.68GiB 13.18 0.46  95
 8   hdd 0.00980  1.00000  10GiB 1.32GiB 57.7MiB     0B 1.26GiB 8.68GiB 13.20 0.46  72
 9   hdd 0.00980  1.00000  10GiB 1.32GiB 57.7MiB     0B 1.26GiB 8.68GiB 13.20 0.46  76
10   hdd 0.00980  1.00000  10GiB 1.32GiB 57.8MiB     0B 1.26GiB 8.68GiB 13.21 0.46  78
11   hdd 0.00980  1.00000  10GiB 1.32GiB 57.7MiB     0B 1.26GiB 8.68GiB 13.17 0.46  76
12   hdd 0.00980  1.00000  10GiB 1.32GiB 57.8MiB     0B 1.26GiB 8.68GiB 13.19 0.46  74
13   hdd 0.00980  1.00000  10GiB 1.32GiB 57.8MiB     0B 1.26GiB 8.68GiB 13.15 0.46  59
14   hdd 0.00980  1.00000  10GiB 1.32GiB 57.7MiB     0B 1.26GiB 8.68GiB 13.19 0.46  54
15   hdd 0.00980  1.00000  10GiB 1.32GiB 57.9MiB     0B 1.26GiB 8.68GiB 13.17 0.46  76
16   hdd 0.00980  1.00000  10GiB 1.32GiB 57.7MiB     0B 1.26GiB 8.68GiB 13.16 0.46  54
17   hdd 0.00980  1.00000  10GiB 1.31GiB 57.7MiB     0B 1.26GiB 8.69GiB 13.15 0.46  66
18   hdd 0.00980  1.00000  10GiB 1.32GiB 57.7MiB     0B 1.26GiB 8.68GiB 13.16 0.46  60
19   hdd 0.00980  1.00000  10GiB 1.31GiB 57.7MiB     0B 1.26GiB 8.69GiB 13.13 0.45  45
                    TOTAL 190GiB 54.8GiB 1.07GiB 896KiB 53.8GiB  135GiB 28.87


ceph pg ls | tail -20

ceph pg ls | tail -20
7.c           0                  0        0         0       0     0           0          0    0        0                active+undersized 2020-07-14 12:08:40.728620       0'0    460:343  [6]          6     [6]              6        0'0 2020-07-14 12:06:57.684106             0'0 2020-07-14 12:06:57.684106
7.d           0                  0        0         0       0     0           0          0    0        0                     active+clean 2020-07-19 08:38:53.212660       0'0    461:176 [16]         16 [16,15]             16        0'0 2020-07-19 08:38:53.212586             0'0 2020-07-14 12:06:57.684106
7.e           0                  0        0         0       0     0           0          0    0        0          stale+active+undersized 2020-07-14 12:08:40.440023       0'0    445:327  [2]          2     [2]              2        0'0 2020-07-14 12:06:57.684106             0'0 2020-07-14 12:06:57.684106
7.f           0                  0        0         0       0     0           0          0    0        0                     active+clean 2020-07-19 10:42:42.538184       0'0    461:176 [16]         16  [16,4]             16        0'0 2020-07-19 10:42:42.538089             0'0 2020-07-14 12:06:57.684106
7.10          0                  0        0         0       0     0           0          0    0        0                     active+clean 2020-07-19 08:22:00.818971       0'0    461:221 [13]         13 [13,10]             13        0'0 2020-07-19 08:22:00.818882             0'0 2020-07-19 08:22:00.818882
7.11          0                  0        0         0       0     0           0          0    0        0                     active+clean 2020-07-19 01:55:41.984335       0'0    461:192 [15]         15  [15,7]             15        0'0 2020-07-19 01:55:41.984294             0'0 2020-07-16 15:16:36.600379
7.12          0                  0        0         0       0     0           0          0    0        0                     active+clean 2020-07-19 06:16:35.490832       0'0    461:260 [10]         10  [10,8]             10        0'0 2020-07-19 06:16:35.490770             0'0 2020-07-18 06:04:58.129850
7.13          0                  0        0         0       0     0           0          0    0        0                active+undersized 2020-07-18 22:49:32.916717       0'0    460:211 [14]         14    [14]             14        0'0 2020-07-18 17:47:52.840600             0'0 2020-07-14 12:06:57.684106
7.14          0                  0        0         0       0     0           0          0    0        0                active+undersized 2020-07-14 12:08:38.610730       0'0    460:342  [5]          5     [5]              5        0'0 2020-07-14 12:06:57.684106             0'0 2020-07-14 12:06:57.684106
7.15          0                  0        0         0       0     0           0          0    0        0                active+undersized 2020-07-15 14:29:42.848823       0'0    460:232 [12]         12    [12]             12        0'0 2020-07-14 12:06:57.684106             0'0 2020-07-14 12:06:57.684106
7.16          0                  0        0         0       0     0           0          0    0        0                     active+clean 2020-07-19 15:41:18.933142       0'0    461:283  [7]          7   [7,5]              7        0'0 2020-07-19 15:41:18.933077             0'0 2020-07-14 12:06:57.684106
7.17          0                  0        0         0       0     0           0          0    0        0                     active+clean 2020-07-20 02:46:08.936766       0'0    461:271  [9]          9   [9,5]              9        0'0 2020-07-20 02:46:08.936673             0'0 2020-07-14 12:06:57.684106
7.18          0                  0        0         0       0     0           0          0    0        0                active+undersized 2020-07-14 12:08:40.097447       0'0    460:339  [4]          4     [4]              4        0'0 2020-07-14 12:06:57.684106             0'0 2020-07-14 12:06:57.684106
7.19          0                  0        0         0       0     0           0          0    0        0            active+clean+remapped 2020-07-19 17:05:12.163909       0'0    461:287  [8]          8   [8,6]              8        0'0 2020-07-19 17:05:12.163859             0'0 2020-07-14 12:06:57.684106
7.1a          0                  0        0         0       0     0           0          0    0        0                     active+clean 2020-07-19 07:27:46.065812       0'0    461:137 [19]         19 [19,11]             19        0'0 2020-07-19 07:27:46.065720             0'0 2020-07-19 07:27:46.065720
7.1b          0                  0        0         0       0     0           0          0    0        0          stale+active+undersized 2020-07-14 12:08:38.159892       0'0    457:337  [0]          0     [0]              0        0'0 2020-07-14 12:06:57.684106             0'0 2020-07-14 12:06:57.684106
7.1c          0                  0        0         0       0     0           0          0    0        0                     active+clean 2020-07-20 05:52:46.899173       0'0    461:193 [15]         15  [15,9]             15        0'0 2020-07-20 05:52:46.899083             0'0 2020-07-14 12:06:57.684106
7.1d          0                  0        0         0       0     0           0          0    0        0                active+undersized 2020-07-18 22:49:31.955385       0'0    460:289  [8]          8     [8]              8        0'0 2020-07-17 23:30:38.960506             0'0 2020-07-14 12:06:57.684106

* NOTE: Omap statistics are gathered during deep scrub and may be inaccurate soon afterwards depending on utilisation. See http://docs.ceph.com/docs/master/dev/placement-group/#omap-statistics for further details.

PS Сори , последний лог разъехался , из за большого количества колонок.

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

Как видишь место съедено еще на трех OSD, а не всего на одном. Если нужно перераспределить с них данные - уменьшай вес. Одинаковый вес не гарантирует одинаковую заполненность.

И обязательно смотри crush map, они могут быть разные для пулов и там могут быть дополнительные ограничения по выбору osd

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte

На другие диски он стал писать когда у меня кончилось место на osd.3

То есть если я увеличу вес для заполненных дисков ( у меня это 0,1,2,3)


 ceph osd tree
ID CLASS WEIGHT   TYPE NAME           STATUS REWEIGHT PRI-AFF
-1       12.35669 root default
-3       12.35669     host Rutherford
 0   hdd  3.04999         osd.0         down  0.80005 1.00000
 1   hdd  3.04999         osd.1         down  0.75006 1.00000
 2   hdd  3.04999         osd.2         down  0.75006 1.00000
 3   hdd  3.04999         osd.3         down        0 1.00000
 4   hdd  0.00980         osd.4           up  1.00000 1.00000
 5   hdd  0.00980         osd.5           up  1.00000 1.00000
 6   hdd  0.00980         osd.6           up  1.00000 1.00000
 7   hdd  0.00980         osd.7           up  1.00000 1.00000
 8   hdd  0.00980         osd.8           up  1.00000 1.00000
 9   hdd  0.00980         osd.9           up  1.00000 1.00000
10   hdd  0.00980         osd.10          up  1.00000 1.00000
11   hdd  0.00980         osd.11          up  1.00000 1.00000
12   hdd  0.00980         osd.12          up  1.00000 1.00000
13   hdd  0.00980         osd.13          up  1.00000 1.00000
14   hdd  0.00980         osd.14          up  1.00000 1.00000
15   hdd  0.00980         osd.15          up  1.00000 1.00000
16   hdd  0.00980         osd.16          up  1.00000 1.00000
17   hdd  0.00980         osd.17          up  1.00000 1.00000
18   hdd  0.00980         osd.18          up  1.00000 1.00000
19   hdd  0.00980         osd.19          up  1.00000 1.00000

увеличивать вес буду командой :

ceph osd crush reweight osd.3 3.05

подниму их (поднимуться ли они ? ) переместит ли CEPH данные с этих дисков на другие , незаполненные ? Или они так и останутся в down ? и фактически это означает что в данной конфигурации ceph не восстановить ?

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

вес надо либо уменьшать на дисках с которых надо увести данные, либо увеличивать на тех, на которые надо это делать. Учти что значений весов у каждого osd 2(weight и reweight) и обсчитываются они по-разному. Я reweight предпочитаю вообще не трогать, он у меня везде 1.0

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Спасибо за ответ ! после изменения весов osd.0, osd.1, osd.2, osd.3 Статус ceph стал не Error а WARN:

ceph -s
  cluster:
    id:     3ed5ce9c-ec59-4223-9104-65f82103a45d
    health: HEALTH_WARN
            noout flag(s) set
            4 osds down
            187/401 objects misplaced (46.633%)
            Reduced data availability: 121 pgs inactive, 101 pgs stale
            Degraded data redundancy: 6/401 objects degraded (1.496%), 3 pgs degraded, 57 pgs undersized

  services:
    mon: 1 daemons, quorum Rutherford
    mgr: Rutherford(active)
    osd: 20 osds: 16 up, 20 in; 695 remapped pgs
         flags noout
    rgw: 1 daemon active

  data:
    pools:   7 pools, 1092 pgs
    objects: 227 objects, 3.12KiB
    usage:   62.7GiB used, 127GiB / 190GiB avail
    pgs:     11.081% pgs unknown
             6/401 objects degraded (1.496%)
             187/401 objects misplaced (46.633%)
             545 active+clean+remapped
             322 active+clean
             121 unknown
             47  stale+active+clean
             37  stale+active+undersized
             16  stale+active+undersized+remapped
             2   active+undersized+degraded
             1   stale+active+undersized+degraded
             1   active+undersized

ceph osd tree выглядит так:

ceph osd tree
ID CLASS WEIGHT  TYPE NAME           STATUS REWEIGHT PRI-AFF
-1       0.17975 root default
-3       0.17975     host Rutherford
 0   hdd 0.00899         osd.0         down  0.00899 1.00000
 1   hdd 0.00899         osd.1         down  0.00899 1.00000
 2   hdd 0.00899         osd.2         down  0.00899 1.00000
 3   hdd 0.00899         osd.3         down  0.00899 1.00000
 4   hdd 0.00899         osd.4           up  0.00899 1.00000
 5   hdd 0.00899         osd.5           up  1.00000 1.00000
 6   hdd 0.00899         osd.6           up  1.00000 1.00000
 7   hdd 0.00899         osd.7           up  1.00000 1.00000
 8   hdd 0.00899         osd.8           up  1.00000 1.00000
 9   hdd 0.00899         osd.9           up  1.00000 1.00000
10   hdd 0.00899         osd.10          up  1.00000 1.00000
11   hdd 0.00899         osd.11          up  1.00000 1.00000
12   hdd 0.00899         osd.12          up  1.00000 1.00000
13   hdd 0.00899         osd.13          up  1.00000 1.00000
14   hdd 0.00899         osd.14          up  1.00000 1.00000
15   hdd 0.00899         osd.15          up  1.00000 1.00000
16   hdd 0.00899         osd.16          up  1.00000 1.00000
17   hdd 0.00899         osd.17          up  1.00000 1.00000
18   hdd 0.00899         osd.18          up  1.00000 1.00000
19   hdd 0.00899         osd.19          up  1.00000 1.00000

ceph osd status:

ceph osd status
+----+------------+-------+-------+--------+---------+--------+---------+-------------+
| id |    host    |  used | avail | wr ops | wr data | rd ops | rd data |    state    |
+----+------------+-------+-------+--------+---------+--------+---------+-------------+
| 0  | Rutherford | 9.88G |  118M |    0   |     0   |    0   |     0   | exists,full |
| 1  | Rutherford | 9.88G |  119M |    0   |     0   |    0   |     0   | exists,full |
| 2  | Rutherford | 9.88G |  116M |    0   |     0   |    0   |     0   | exists,full |
| 3  | Rutherford |    0  |    0  |    0   |     0   |    0   |     0   | exists,full |
| 4  | Rutherford | 3621M | 6618M |    0   |     0   |    0   |     0   |  exists,up  |
| 5  | Rutherford | 3215M | 7024M |    0   |     0   |    0   |     0   |  exists,up  |
| 6  | Rutherford | 3473M | 6766M |    0   |     0   |    0   |     0   |  exists,up  |
| 7  | Rutherford | 1940M | 8299M |    0   |     0   |    0   |     0   |  exists,up  |
| 8  | Rutherford | 1940M | 8299M |    0   |     0   |    0   |     0   |  exists,up  |
| 9  | Rutherford | 1935M | 8304M |    0   |     0   |    0   |     0   |  exists,up  |
| 10 | Rutherford | 1941M | 8298M |    0   |     0   |    0   |     0   |  exists,up  |
| 11 | Rutherford | 1791M | 8448M |    0   |     0   |    0   |     0   |  exists,up  |
| 12 | Rutherford | 1872M | 8367M |    0   |     0   |    0   |     0   |  exists,up  |
| 13 | Rutherford | 1737M | 8502M |    0   |     0   |    0   |     0   |  exists,up  |
| 14 | Rutherford | 1741M | 8498M |    0   |     0   |    0   |     0   |  exists,up  |
| 15 | Rutherford | 1740M | 8499M |    0   |     0   |    0   |     0   |  exists,up  |
| 16 | Rutherford | 1738M | 8501M |    0   |     0   |    0   |     0   |  exists,up  |
| 17 | Rutherford | 1741M | 8498M |    0   |     0   |    0   |     0   |  exists,up  |
| 18 | Rutherford | 1737M | 8502M |    0   |     0   |    0   |     0   |  exists,up  |
| 19 | Rutherford | 1733M | 8506M |    0   |     0   |    0   |     0   |  exists,up  |
+----+------------+-------+-------+--------+---------+--------+---------+-------------+

согласно этим статьям:

ceph osd crush reweight - размер OSD в Террабайтах

ceph osd reweight - количество I/O на OSD

Поэтому я выставил у всех OSD reweight osd.1 0.009 ~ 10 Гб

ceph osd crush reweight osd.1 0.009

Для уже занятых дисков выставил в минимальное значение 0.009

ceph osd reweight osd.1 0.009

но как мне вернуть статус OK ?

я пробовал поднимать osd диски (просто стартовал демоны, systemctl start ceph-osd@0.service) но у них все равно статус - down как можно их поднять ?

Еще такой вопрос, пытался посмотреть что у меня там лежит на 62 Гигабайта Выполнял команду:

rados -p default.rgw.meta ls -

Но результата так и не увидел. Есть предположение что это из за того что кластер находится в состоянии Warn

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

если osd не стартует по причине забитости - только добавлять места на раздел, где он находится

это к сожалению особенность ceph прописанная в мануале - на 85% забитости выдается предупреждение, если забить 95% - ошибка

Экстренная починка в больших кластерах обычно заключается в смене веса osd и ПОЛНОМ удалении данных с него. Реплики перераспределяются автоматически. У тебя с уровнем реплики 1 это не возможно. Фактически у тебя там - пониженная надежность, эдакий raid-0 на все твои osd.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Ещё раз спасибо, теперь я Наконец то понял. Если кончилось место то варианта 2 :

  1. добавлять место этому osd, тут поможет lvm , и тп.
  2. убивать диск и зачёт репликации данные будут доступны. Перед этим как я понимаю лучше добавить ещё дисков.

Так как я сам выставил репликацию в 0, и место на Osd не расширить ( это папка) то данный кластер жив только до полного заполнения одного из osd.

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