ΠšΠ»Π°ΡΡ‚Π΅Ρ€Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… web-кластСров Π½Π° Π±Π°Π·Π΅ drbd+ocfs2

О Ρ‡Π΅ΠΌ ΠΌΡ‹ расскаТСм:
Как быстро Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π΄Π²ΡƒΡ… сСрвСров Π½Π° Π±Π°Π·Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ drbd+ocfs2.

Для ΠΊΠΎΠ³ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
Π’ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π» станСт ΠΏΠΎΠ»Π΅Π·Π΅Π½ систСмным администраторам ΠΈ всСм, ΠΊΡ‚ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ способ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈΠ»ΠΈ хотят ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠžΡ‚ ΠΊΠ°ΠΊΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΌΡ‹ ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡΡŒ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ

Часто ΠΌΡ‹ сталкиваСмся с ситуациСй, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° нСбольшом web-кластСрС ΠΎΠ±Ρ‰Π΅Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ с Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ β€” запись. ΠœΡ‹ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° для Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ ΠΌΠ°Π»ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ способно ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ нас сразу ΠΏΠΎ нСскольким показатСлям. БСйчас расскаТСм, ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

  • Glusterfs Π½Π΅ устроил нас ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ большого количСства Ρ„Π°ΠΉΠ»ΠΎΠ², Π±Ρ‹Π»Π° высокая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° CPU. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ Π·Π° Π½ΠΈΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² brick-ΠΈ, Π½ΠΎ это Π½Π΅ всСгда ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

  • Ceph Π½Π΅ понравился ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ€Π΅Π΄Π½Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… с 2-4 сСрвСрами, особСнно, Ссли ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ впослСдствии ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ограничСния ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π²Ρ‹Π½ΡƒΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ storage кластСры, ΠΊΠ°ΠΊ ΠΈ с glusterfs.

  • ИспользованиС ΠΎΠ΄Π½ΠΎΠ³ΠΎ nfs сСрвСра для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ вопросы Π² ΠΏΠ»Π°Π½Π΅ отказоустойчивости.

  • s3 β€” ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ популярноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΡ€ΡƒΠ³Π° Π·Π°Π΄Π°Ρ‡, Π½ΠΎ это ΠΈ Π½Π΅ файловая систСма, Ρ‡Ρ‚ΠΎ суТаСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния.

  • lsyncd. Если ΠΌΡ‹ ΡƒΠΆΠ΅ Π½Π°Ρ‡Π°Π»ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Β«Π½Π΅-Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСмах», Ρ‚ΠΎ стоит ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΈ ΠΏΠΎ этому популярному Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ. Мало Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для двухстороннСго ΠΎΠ±ΠΌΠ΅Π½Π° (Π½ΠΎ Ссли ΠΎΡ‡Π΅Π½ΡŒ хочСтся, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ), Ρ‚Π°ΠΊ Π΅Ρ‰Π΅ ΠΈ Π½Π΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° большом количСствС Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€ΠΈΡΡ‚Π½Ρ‹ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎ всСму Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ являСтся ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ inotify для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π²Π΅ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ запускС ΠΈ ΠΏΡ€ΠΈ пСрСсканировании. Π’ качСствС срСдства ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ rsync.

Π’ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»: ΠΊΠ°ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° Π±Π°Π·Π΅ drbd+ocfs2

Одним ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для нас стала связка ocfs2+drbd. БСйчас ΠΌΡ‹ расскаТСм, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстро Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π΄Π²ΡƒΡ… сСрвСров Π½Π° Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Но сначала Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…:

DRBD β€” систСма хранСния ΠΈΠ· стандартной поставки Linux, которая позволяСт Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. ОсновноС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² построСнии отказоустойчивых Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰.

OCFS2 β€” файловая систСма, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ раздСляСмоС использованиС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° нСсколькими систСмами. Π’Ρ…ΠΎΠ΄ΠΈΡ‚ Π² поставку Linux ΠΈ прСдставляСт ΠΈΠ· сСбя ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра ΠΈ userspace инструмСнтарий для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π€Π‘. OCFS2 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ… DRBD, Π½ΠΎ ΠΈ ΠΏΠΎΠ²Π΅Ρ€Ρ… iSCSI с мноТСствСнным ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ DRBD.

ВсС дСйствия производятся Π½Π° ubuntu server 18.04 Π² минимальной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π¨Π°Π³ 1. НастраиваСм DRBD:

Π’ Ρ„Π°ΠΉΠ»Π΅ /etc/drbd.d/drbd0.res описываСм нашС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π±Π»ΠΎΡ‡Π½ΠΎΠ΅ устройство /dev/drbd0:

resource drbd0 {
    syncer { rate 1000M; }
    net {
        allow-two-primaries;
        after-sb-0pri discard-zero-changes;
        after-sb-1pri discard-secondary;
        after-sb-2pri disconnect;
    }
    startup { become-primary-on both; }
    on drbd1 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/vdb1;
        address 10.10.10.192:7789;
}
    on drbd2 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/vdb1;
        address 10.10.10.193:7789;
}
}

meta-disk internal β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ Π±Π»ΠΎΡ‡Π½Ρ‹Π΅ устройства для хранСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…
device /dev/drbd0 β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ /dev/drbd0 ΠΊΠ°ΠΊ ΠΏΡƒΡ‚ΡŒ ΠΊ drbd Ρ‚ΠΎΠΌΡƒ.
disk /dev/vdb1 β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ /dev/vdb1
syncer { rate 1000M; } β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΈΠ³Π°Π±ΠΈΡ‚ пропускной способности ΠΊΠ°Π½Π°Π»Π°
allow-two-primaries β€” ваТная опция, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π°Ρ принятиС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° Π΄Π²ΡƒΡ… primary сСрвСрах
after-sb-0pri, after-sb-1pri, after-sb-2pri β€” ΠΎΠΏΡ†ΠΈΠΈ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° дСйствия ΡƒΠ·Π»Π° ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ splitbrain. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
become-primary-on both β€” устанавливаСт ΠΎΠ±Π΅ Π½ΠΎΠ΄Ρ‹ Π² primary.

Π’ нашСм случаС ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π²Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π’Πœ, с Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΡΠ΅Ρ‚ΡŒΡŽ пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ Π² 10 Π³ΠΈΠ³Π°Π±ΠΈΡ‚.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сСтСвыС ΠΈΠΌΠ΅Π½Π° Π΄Π²ΡƒΡ… Π½ΠΎΠ΄ кластСра β€” это drbd1 ΠΈ drbd2. Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² /etc/hosts ΠΈΠΌΠ΅Π½Π° ΠΈ ip адрСса ΡƒΠ·Π»ΠΎΠ².

10.10.10.192 drbd1
10.10.10.193 drbd2

Π¨Π°Π³ 2. НастраиваСм Π½ΠΎΠ΄Ρ‹:

На ΠΎΠ±ΠΎΠΈΡ… сСрвСрах выполняСм:

drbdadm create-md drbd0

ΠšΠ»Π°ΡΡ‚Π΅Ρ€Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… web-кластСров Π½Π° Π±Π°Π·Π΅ drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠšΠ»Π°ΡΡ‚Π΅Ρ€Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… web-кластСров Π½Π° Π±Π°Π·Π΅ drbd+ocfs2

МоТно Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ. На ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π½ΠΎΠ΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

drbdadm primary --force drbd0

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ статус:

cat /proc/drbd

ΠšΠ»Π°ΡΡ‚Π΅Ρ€Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… web-кластСров Π½Π° Π±Π°Π·Π΅ drbd+ocfs2

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π½Π°Ρ‡Π°Π»Π°ΡΡŒ синхронизация. ДоТидаСмся окончания ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ:

ΠšΠ»Π°ΡΡ‚Π΅Ρ€Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… web-кластСров Π½Π° Π±Π°Π·Π΅ drbd+ocfs2

Π¨Π°Π³ 3. ЗапускаСм ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½ΠΎΠ΄Π΅:

drbdadm primary --force drbd0

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠšΠ»Π°ΡΡ‚Π΅Ρ€Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… web-кластСров Π½Π° Π±Π°Π·Π΅ drbd+ocfs2

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² drbd с Π΄Π²ΡƒΡ… сСрвСров.

Π¨Π°Π³ 4. Установка ΠΈ настройка ocfs2.

Π‘ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ достаточно Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ:

cluster:
     node_count = 2
     name = ocfs2cluster

node:
     number = 1
     cluster = ocfs2cluster
     ip_port = 7777
     ip_address = 10.10.10.192
     name = drbd1

node:
     number = 2
     cluster = ocfs2cluster
     ip_port = 7777
     ip_address = 10.10.10.193
     name = drbd2

Π•Ρ‘ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² /etc/ocfs2/cluster.conf Π½Π° ΠΎΠ±Π΅ΠΈΡ… Π½ΠΎΠ΄Π°Ρ….

БоздаСм ЀБ на drbd0 на любой нодС:

mkfs.ocfs2 -L "testVol" /dev/drbd0

Π’ΡƒΡ‚ ΠΌΡ‹ создали Π€Π‘ с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ testVol Π½Π° drbd0, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ΠšΠ»Π°ΡΡ‚Π΅Ρ€Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… web-кластСров Π½Π° Π±Π°Π·Π΅ drbd+ocfs2

Π’ /etc/default/o2cb Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ (ΠΊΠ°ΠΊ Π² нашСм Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅:

o2cb register-cluster ocfs2cluster

ПослС Ρ‡Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈ добавляСм Π² автозапуск всС Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ unit-Ρ‹:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Π§Π°ΡΡ‚ΡŒ этого ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π² процСссС настройки.

Π¨Π°Π³ 5. ДобавляСм Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования Π² fstab Π½Π° ΠΎΠ±Π΅ΠΈΡ… Π½ΠΎΠ΄Π°Ρ…:

/dev/drbd0 /media/shared ocfs2 defaults,noauto,heartbeat=local 0 0

ДирСктория /media/shared ΠΏΡ€ΠΈ этом Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ создана Π·Π°Ρ€Π°Π½Π΅Π΅.

Π’ΡƒΡ‚ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΡ†ΠΈΠΈ noauto, которая ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π€Π‘ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ смонтирована ΠΏΡ€ΠΈ стартС (ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСтСвыС фс Ρ‡Π΅Ρ€Π΅Π· systemd) ΠΈ heartbeat=local, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ использованиС сСрвиса heartbeat Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅. БущСствуСт Π΅Ρ‰Π΅ global heartbeat, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ большС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… кластСров.

Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ /media/shared ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ содСрТимого.

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ отказоустойчивоС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com