เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบธเปˆเบกเบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบกเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ drbd+ocfs2

เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบš:
เบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฎเปˆเบงเบกเบเบฑเบ™เบขเปˆเบฒเบ‡เป„เบงเบงเบฒเบชเปเบฒเบฅเบฑเบšเบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบงเบดเบ—เบตเปเบเป‰เป„เบ‚ drbd+ocfs2.

เบ™เบตเป‰เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเปƒเบœ:
เบเบฒเบ™เบชเบญเบ™เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบฅเบฐเบšเบปเบš เปเบฅเบฐเบ—เบธเบเบ„เบปเบ™เบ—เบตเปˆเป€เบฅเบทเบญเบเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™ เบซเบผเบทเบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบญเบ‡เปเบเป‰เป„เบ‚.

เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบญเบฑเบ™เปƒเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ•เบดเป€เบชเบ” เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡?

เป€เบฅเบทเป‰เบญเบเป†เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเป€เบŠเบตเบ™เบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เบฝเบ™เบ—เบตเปˆเบ”เบตเบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปˆเบฒเบ‡เป†เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบ•เปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเปเปƒเบˆเบเบฑเบšเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”เบซเบผเบฒเบเบขเปˆเบฒเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡.

  • Glusterfs เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเปเปƒเบˆเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™; เบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เป„เบŸเบฅเปŒเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เปเบฅเบฐเบกเบตเบเบฒเบ™เป‚เบซเบผเบ”เบชเบนเบ‡เปƒเบ™ CPU. เบšเบฑเบ™เบซเบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เป„เบŸเบฅเปŒเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบซเบฒเบžเบงเบเบกเบฑเบ™เป‚เบ”เบเบเบปเบ‡เบˆเบฒเบเบญเบดเบ”, เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเบฐเป€เบซเบกเบตเปเบฅเบฐเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.

  • Ceph เบšเปเปˆเบกเบฑเบเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบต 2-4 เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ–เป‰เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰เบ•เปเปˆเบกเบฒ. เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบเบธเปˆเบกเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš glusterfs.

  • เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ NFS เบซเบ™เบถเปˆเบ‡เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เปเบฒเบ–เบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

  • s3 เป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”เบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡, เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบกเบฑเบ™เปเบ„เบšเบฅเบปเบ‡.

  • syncd. เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš "เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป„เบŸเบฅเปŒ", เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบ™เบดเบเบปเบกเบ™เบตเป‰. เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบชเบญเบ‡เบ—เบฒเบ‡ (เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปเบ—เป‰เป†, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰), เบกเบฑเบ™เบเบฑเบ‡เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เป„เบŸเบฅเปŒเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ. เบ™เบญเบ เบˆเบฒเบ เบ™เบฑเป‰เบ™ เบ‡เบฒเบก เบเบฑเบš เบชเบดเปˆเบ‡ เบ—เบฑเบ‡ เบซเบกเบปเบ” เปเบกเปˆเบ™ เบงเปˆเบฒ เบกเบฑเบ™ เป€เบ›เบฑเบ™ เบเบฐ เบ—เบนเป‰ เบ”เบฝเบง. เป€เบซเบ”เบœเบปเบ™เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เป‚เบ›เบฅเปเบเบฅเบก: เบกเบฑเบ™เปƒเบŠเป‰ inotify เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ, เป€เบŠเบดเปˆเบ‡เบกเบฑเบ™เบกเบญเบšเบซเบกเบฒเบเปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเบฐเปเบเบ™เปƒเบซเบกเปˆ. rsync เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบชเบทเปˆเบเบฒเบ‡เบเบฒเบ™เป‚เบญเบ™.

เบšเบปเบ”เบฎเบฝเบ™: เบงเบดเบ—เบตเบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบšเปˆเบญเบ™เบˆเบฑเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ drbd+ocfs2

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบชเบฐเบ”เบงเบเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ ocfs2+drbd. เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบญเบเป€เบˆเบปเป‰เบฒเบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบฎเปˆเบงเบกเบเบฑเบ™เป„เบ”เป‰เป„เบงเปเบ™เบงเปƒเบ”เบชเบณเบฅเบฑเบšเบชเบญเบ‡เป€เบŠเบตเบšเป€เบงเบตเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚. เปเบ•เปˆเบ—เปเบฒเบญเบดเบ”, เป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบš:

DRBD - เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบˆเบฒเบเบเบฒเบ™เปเบˆเบเบขเบฒเบ Linux เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบ‚เปเป‰เบกเบนเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบ™เบšเบฅเบฑเบญเบ. เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบœเบดเบ”, เบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆ.

OCFS2 - เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ”เบฝเบงเบเบฑเบ™เป‚เบ”เบเบซเบผเบฒเบเบฅเบฐเบšเบปเบš. เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบ Linux เปเบฅเบฐเป€เบ›เบฑเบ™เป‚เบกเบ”เบนเบ™ kernel เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš FS. OCFS2 เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป„เบฅเบเบฐ DRBD, เปเบ•เปˆเบเบฑเบ‡เบœเปˆเบฒเบ™ iSCSI เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบผเบฒเบ. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ DRBD.

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ ubuntu 18.04 เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบซเบ™เป‰เบญเบ.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 1. เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ DRBD:

เปƒเบ™เป„เบŸเบฅเปŒ /etc/drbd.d/drbd0.res เบžเบงเบเป€เบฎเบปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบญเบธเบ›เบฐเบเบญเบ™เบšเบฅเบฑเบญเบ virtual เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ /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 เบžเบฒเบเปƒเบ™ โ€” เปƒเบŠเป‰เบญเบธเบ›เบฐเบเบญเบ™เบšเบฅเบฑเบญเบเบ”เบฝเบงเบเบฑเบ™เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบกเบ•เบฒเป€เบ”เบ•เบฒ
เบญเบธเบ›เบฐเบเบญเบ™ /dev/drbd0 - เปƒเบŠเป‰ /dev/drbd0 เป€เบ›เบฑเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆเบ›เบฐเบฅเบดเบกเบฒเบ™ drbd.
disk /dev/vdb1 - เปƒเบŠเป‰ /dev/vdb1
syncer { เบญเบฑเบ”เบ•เบฒ 1000M; } โ€” เปƒเบŠเป‰เปเบšเบ™เบงเบดเบ”เบŠเปˆเบญเบ‡ gigabit
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบชเบญเบ‡โ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบปเป‰เบ™โ€‹ - เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเปƒเบ™เบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ•เบปเป‰เบ™เบ•เป
after-sb-0pri, after-sb-1pri, after-sb-2pri โ€” เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบฎเบฑเบšโ€‹เบœเบดเบ”โ€‹เบŠเบญเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเบฐโ€‹เบ—เปเบฒโ€‹เบ‚เบญเบ‡ node เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ splitbrain เบ–เบทเบโ€‹เบเบงเบ”โ€‹เบžเบปเบšโ€‹. เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™.
เบเบฒเบโ€‹เป€เบ›เบฑเบ™โ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบปเป‰เบ™โ€‹เปƒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบชเบญเบ‡โ€‹ โ€” เบ•เบฑเป‰เบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบฑเบ‡โ€‹เบชเบญเบ‡โ€‹เป€เบ›เบฑเบ™โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบชเบญเบ‡ VM เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡, เบกเบตเป€เบ„เบทเบญเบ‚เปˆเบฒเบ virtual เบ—เบตเปˆเบญเบธเบ—เบดเบ”เบ•เบปเบ™เบ—เบตเปˆเบกเบต throughput 10 gigabits.

เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบŠเบทเปˆเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบชเบญเบ‡เบเบธเปˆเบกเบเบธเปˆเบกเปเบกเปˆเบ™ drbd1 เปเบฅเบฐ drbd2. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบปเบ‡เบเบฑเบšเบŠเบทเปˆเปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆ IP เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ /etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 2. เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ nodes:

เปƒเบ™เบ—เบฑเบ‡เบชเบญเบ‡เป€เบŠเบตเบšเป€เบงเบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™:

drbdadm create-md drbd0

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบธเปˆเบกเบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบกเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบธเปˆเบกเบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบกเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ drbd+ocfs2

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ synchronization. เปƒเบ™ node เบ—เปเบฒเบญเบดเบ”, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™:

drbdadm primary --force drbd0

เบกเบฒเป€เบšเบดเปˆเบ‡เบชเบฐเบ–เบฒเบ™เบฐ:

cat /proc/drbd

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบธเปˆเบกเบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบกเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ drbd+ocfs2

เบ”เบตเบซเบผเบฒเบ, synchronization เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบžเบงเบเป€เบฎเบปเบฒเบฅเปเบ–เป‰เบฒเบˆเบปเบ™เป€เบ–เบดเบ‡เบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบฎเบนเบš:

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบธเปˆเบกเบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบกเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ drbd+ocfs2

เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบ—เบต 3. เป€เบฅเบตเปˆเบก synchronization เปƒเบ™โ€‹เบ‚เปเป‰โ€‹เบ—เบตโ€‹เบชเบญเบ‡โ€‹:

drbdadm primary --force drbd0

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบธเปˆเบกเบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบกเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ 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 เปƒเบ™เบ—เบฑเบ‡เบชเบญเบ‡ nodes.

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ FS เปƒเบ™ drbd0 เปƒเบ™ node เปƒเบ”:

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

เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ›เป‰เบฒเบเบŠเบทเปˆ testVol เปƒเบ™ drbd0, เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบธเปˆเบกเบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบกเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ drbd+ocfs2

เปƒเบ™ /etc/default/o2cb เบ—เปˆเบฒเบ™โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบเปเบฒโ€‹เบ™เบปเบ” (เป€เบŠเบฑเปˆเบ™โ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เปเบ•เปˆเบฅเบฐ node:

o2cb register-cluster ocfs2cluster

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เปเบฅเบฐเป€เบžเบตเปˆเบกเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญ autorun:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

เบšเบฒเบ‡เบญเบฑเบ™เบ™เบตเป‰เบˆเบฐเบ–เบทเบเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบ—เบต 5. เป€เบžเบตเปˆเบกโ€‹เบˆเบธเบ” mount เบเบฑเบš fstab เปƒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบชเบญเบ‡ nodesโ€‹:

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

เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต /media/shared เบกเบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ.

เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบ noauto, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป„เบŸเบฅเปŒเบˆเบฐเบšเปเปˆเบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เบ‚เป‰เบญเบเบกเบฑเบ mount เป„เบŸเบฅเปŒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบœเปˆเบฒเบ™ systemd) เปเบฅเบฐ heartbeat = เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เปƒเบŠเป‰เบšเปเบฅเบดเบเบฒเบ™ heartbeat เปƒเบ™เปเบ•เปˆเบฅเบฐ node. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เบกเบตเบเบฒเบ™เป€เบ•เบฑเป‰เบ™เบ‚เบญเบ‡เบซเบปเบงเปƒเบˆเบ—เบปเปˆเบงเป‚เบฅเบ, เป€เบŠเบดเปˆเบ‡เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบเบธเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.

เบ•เปเปˆเป„เบ›เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” mount /media/shared เปเบฅเบฐเบเบงเบ”เบชเบญเบšเบเบฒเบ™ synchronization เป€เบ™เบทเป‰เบญเปƒเบ™.

เปเบฅเป‰เบง! เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบžเบทเป‰เบ™เบ—เบตเปˆเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบซเบผเบฒเบ เบซเบผเบท เปœเป‰เบญเบ เบžเป‰เบญเบกเบเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ เปเบฅเบฐ เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเป€เปเบฒเบฐเบชเบปเบก.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™