Penggunaan ruang mentah CEPH

8

Saya tidak bisa mengerti penggunaan ruang baku ceph.

Saya memiliki 14 HDD (14 OSD) di 7 server, 3TB setiap HDD ~ total ruang baku 42 TB.

ceph -s 
     osdmap e4055: 14 osds: 14 up, 14 in
      pgmap v8073416: 1920 pgs, 6 pools, 16777 GB data, 4196 kobjects
            33702 GB used, 5371 GB / 39074 GB avail

Saya membuat 4 perangkat blok, masing-masing 5 TB:

df -h
 /dev/rbd1       5.0T  2.7T  2.4T  54% /mnt/part1
/dev/rbd2       5.0T  2.7T  2.4T  53% /mnt/part2
/dev/rbd3       5.0T  2.6T  2.5T  52% /mnt/part3
/dev/rbd4       5.0T  2.9T  2.2T  57% /mnt/part4

df menunjukkan bahwa 10,9 TB digunakan secara total, ceph menunjukkan bahwa 33702 GB digunakan. Jika saya memiliki 2 salinan, itu harus ~ 22 TB, tetapi sekarang saya memiliki 33,7 TB yang digunakan - 11 TB tidak terjawab.

ceph osd pool get archyvas size
size: 2


ceph df
GLOBAL:
    SIZE       AVAIL     RAW USED     %RAW USED
    39074G     5326G       33747G         86.37
POOLS:
    NAME          ID     USED      %USED     MAX AVAIL     OBJECTS
    data          0          0         0         1840G           0
    metadata      1          0         0         1840G           0
    archyvas      3      4158G     10.64         1840G     1065104
    archyvas2     4      4205G     10.76         1840G     1077119
    archyvas3     5      3931G     10.06         1840G     1006920
    archyvas4     6      4483G     11.47         1840G     1148291

Blokir perangkat dan OSD FS - XFS

virgisme
sumber

Jawaban:

6

Salah satu sumber kebingungan yang mungkin adalah GB vs GiB / TB vs TiB (basis 10 / basis 2), tetapi itu tidak dapat menjelaskan semua perbedaan di sini.

Ceph / RBD akan mencoba "malas" mengalokasikan ruang untuk volume Anda. Inilah sebabnya mengapa meskipun Anda membuat empat volume 5TB, ia melaporkan 16TB digunakan, bukan 20. Namun 16TB lebih dari jumlah "aktif" konten sistem file yang didukung RBD Anda, yang hanya sekitar 11TB, seperti yang Anda katakan. Beberapa hal yang perlu diperhatikan:

Ketika Anda menghapus file di sistem file yang didukung RBD, sistem file secara internal akan menandai blok sebagai bebas, tetapi biasanya tidak mencoba untuk "mengembalikan" mereka ke perangkat blok yang mendasarinya (RBD). Jika versi RBD kernel Anda cukup baru (3,18 atau lebih baru), Anda harus dapat menggunakan fstrimuntuk mengembalikan blok yang dibebaskan ke RBD. Saya menduga Anda telah membuat dan menghapus file lain pada sistem file ini, bukan?

Ada juga beberapa sistem file overhead di luar penggunaan data bersih yang ditunjukkan oleh df. Selain "superblok" dan struktur data internal sistem file lainnya, beberapa overhead diharapkan dari rincian di mana RBD mengalokasikan data. Saya pikir RBD akan selalu mengalokasikan potongan 4MB, bahkan ketika hanya sebagian yang digunakan.

sleinen
sumber
Dan saya setuju dengan Simon. Kira kedua jawaban kita bersama membuat satu lengkap. btw. kurang ajar kau. Pertanyaan lama 20 jam dan Anda mengalahkan saya untuk menjawab dengan 35 detik? : D
Fox
Terima kasih atas jawaban Anda berdua. Sekarang saya mengerti di mana masalah saya, dan bagaimana menyelesaikannya.
virgisme
Opsi yang memungkinkan: 1. tingkatkan ke kernel Linux> 3.18 dan pasang dengan opsi buang; (Saya menguji dengan kernel 3.19.0-1.el6.elrepo.x86_64, tetapi mengalami deadlock setiap hari); 2. Buat kembali perangkat blok dengan ukuran <5 TB (tidak dapat mengecilkan XFS) 3. Tambahkan HDD dan buat OSD tambahan.
virgisme
1
Dapat mengkonfirmasi ini berfungsi dengan baik. Upgrade kernel mesin klien Ceph saya menjadi 3,19 akhir pekan lalu di Ubuntu LTS 14.04.3 ( sudo apt-get install --install-recommends linux-generic-lts-vivid), reboot, memetakan ulang dan me-mount volume rbd saya, menjalankan fstrimmasing-masing, dan secara kolektif memulihkan 450GB pada cluster 25TB kecil. Setelah Anda memutakhirkan, pastikan Anda mulai memasang volume rbd Anda dengan discardopsi.
Brian Cline
5

Saya bukan ahli ceph tetapi biarkan saya menebak sedikit.

Perangkat blok tidak dipasang tanpa discardopsi. Jadi setiap data yang Anda tulis dan hapus tidak muncul di sistem file ( /mnt/part1), tetapi seperti yang pernah ditulis dan tidak dipangkas, ia tetap berada di sistem file yang mendasarinya.

Jika Anda melihat USEDkumpulan Anda dan menambahkannya bersama-sama, Anda mendapatkan 16777GB, yang sama dengan apa yang ceph -sditampilkan. Dan jika Anda kalikan dengan dua (dua salinan), Anda mendapatkan 33554GB, yang merupakan ruang yang cukup banyak.

Rubah
sumber
1
Saya setuju dengan respons Fox (yang ditulis bersamaan dengan tanggapan saya di bawah ini :-). discarddan "trim" pada dasarnya adalah kata yang berbeda untuk mekanisme yang sama yang dapat digunakan untuk mengembalikan blok yang tidak digunakan ke perangkat blok. Pemasangan dengan discardopsi harus memiliki efek yang diinginkan. Beberapa orang lebih suka menjalankan secara berkala fstrimuntuk menghindari overhead dari pembuangan terus-menerus oleh sistem file. Perhatikan bahwa agar semua ini berfungsi, driver RBD Anda perlu mendukung TRIM / buang. Seperti yang saya katakan, driver kernel RBD melakukan ini sejak Linux 3.18 — lihat tracker.ceph.com/issues/190 .
sleinen