FreeBSD гарын авлага
Өмнөх | Бүлэг 32. Сүлжээний нэмэлт ойлголтууд | Дараах

# 32.14. Common Address Redundancy Protocol (CARP)

Хувь нэмэр болгон оруулсан Том Рөүдс.

Common Address Redundancy Protocol буюу CARP нь олон хостуудад нэг IP хаяг хуваалцах боломжийг олгодог. Зарим тохиргоонуудын хувьд үүнийг байнгын бэлэн байдал юм уу эсвэл ачаалал тэгш хуваарилахад ашиглаж болох юм. Энд дурдсан жишээний адилаар хостууд нь бас өөр өөр IP хаягууд ашиглаж болох юм.

CARP-ийн дэмжлэгийг идэвхжүүлэхийн тулд FreeBSD цөмийг Бүлэг 9 бүлэгт заасны дагуу дараах тохируулгатайгаар бүтээсэн байх хэрэгтэй:

    device	carp

Мөн өөрөөр `if_carp.ko` модулийг ачаалах үед дуудаж болно. Ингэхийн тулд дараах мөрийг `/boot/loader.conf` нэмж өгнө:

    if_carp_load="YES"

CARP боломж нь одоо хүртээмжтэй болсон байх ёстой бөгөөд түүнийг хэд хэдэн `sysctl`-ийн OID-уудын тусламжтайгаар тааруулж болно:

OID | Тайлбар
--- | ---
`net.inet.carp.allow` | Ирж байгаа CARP пакетуудыг хүлээж авах. Анхдагчаар идэвхжсэн байдаг.
`net.inet.carp.preempt` | Энэ тохируулга нь хост дээрх бүх CARP интерфэйсүүдийг аль нэг нь зогссон тохиолдолд зогсоодог. Анхдагчаар идэвхжээгүй байдаг.
`net.inet.carp.log` | `0` гэсэн утга нь бүртгэлийг идэвхжүүлдэггүй. `1` гэсэн утга нь муу CARP пакетуудын бүртгэлийг идэвхжүүлдэг. `1`-ээс их утгууд нь CARP интерфэйсүүдийн хувьд төлвийн өөрчлөлтүүдийн бүртгэлийг идэвхжүүлдэг. Анхдагч утга нь `1` байна.
`net.inet.carp.arpbalance` | ARP ашиглан дотоод сүлжээний урсгалыг тэнцвэржүүлнэ. Анхдагчаар идэвхжээгүй байдаг.

`net.inet.carp.suppress_preempt`

Preemption буюу өөр илүү өндөр давуу эрх бүхий бодлого/урсгалаар солигдох боломжийг хаасан хориглолтын төлвийг үзүүлэх зөвхөн уншигдах OID. Хэрэв интерфэйс дээрх холбоос босоогүй бол илүү өндөр давуу эрх бүхий бодлого/урсгалаар солигдох боломжийг хааж болно. `0` утга нь илүү өндөр давуу эрх бүхий бодлого/урсгалаар солигдох боломж хаагдаагүй гэсэн утгатай. Асуудал бүр энэ OID-ийг нэгээр ахиулж нэмэгдүүлнэ.

CARP төхөөрөмжүүдийг `ifconfig` тушаалаар үүсгэж болно:

    # ifconfig carp0 create

Жинхэнэ амьдрал дээр эдгээр интерфэйсүүдэд VHID гэгддэг давхардахгүй дугаарууд хэрэгтэй болно. Энэ VHID буюу Виртуал Хостын Үнэмлэх нь сүлжээн дэх хостыг ялгахад хэрэглэгдэх болно.

## 32.14.1. Серверт хандах боломжийг байнга хангахын тулд CARP-ийг ашиглах нь (CARP)

Дээр дурдсан CARP-ийн нэг хэрэглээ нь серверийн бэлэн байдалд зориулагджээ. Энэ жишээ нь өөр өөр IP хаягуудтай, ижил вэбийн агуулга бүхий гурван хостын хувьд байнгын бэлэн байдалд байх дэмжлэгийг харуулах болно. Эдгээр машинууд нь Тойрон Эргэх DNS тохиргоотойгоор ажиллах болно. Амжилтгүй болсон үед хандах нөөц машин нь хоёр нэмэлт CARP интерфэйстэй байх бөгөөд агуулгын сервер бүрийн IP-ний хувьд ашиглагдана. Хандалт амжилтгүй болоход амжилтгүй болсон машины IP хаягийг нөөц сервер авах ёстой. Энэ нь хэрэглэгчид амжилтгүй болсон нь мэдэгдэхгүй гэсэн үг юм. Нөөц сервер нь ачааллыг авах ёстой бол бусад агуулгын серверүүдтэй ижил агуулга болон үйлчилгээнүүдтэй байх ёстой.

Хоёр машин нь өгөгдсөн хостын нэр болон VHID-үүдээс бусдаараа адилхан тохируулагдсан байх ёстой. Энэ жишээн дээр эдгээр машинуудыг `hosta.example.org` болон `hostb.example.org` гэж нэрлэсэн байгаа. Эхлээд CARP-ийн тохиргоонд шаардлагатай мөрүүдийг `rc.conf` файлд нэмэх хэрэгтэй. `hosta.example.org` хостын хувьд `rc.conf` файл доор дурдсан мөрүүдийг агуулсан байх ёстой:

    hostname="hosta.example.org"
    ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
    cloned_interfaces="carp0"
    ifconfig_carp0="vhid 1 pass testpass 192.168.1.50/24"

`hostb.example.org` дээр доор дурдсан мөрүүдийг `rc.conf` файл агуулсан байх ёстой:

    hostname="hostb.example.org"
    ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
    cloned_interfaces="carp0"
    ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"

> Тэмдэглэл: Хамгийн чухал нь `ifconfig` тушаалд `pass` тохируулгаар заагдсан нууц үгс нь адил байх ёстой. `carp` төхөөрөмжүүд нь зөвхөн зөв нууц үг бүхий машинуудаас ирэх зарлалтуудыг сонсох болно. VHID нь машин бүрийн хувьд өөр өөр байх ёстой.

Гурав дахь `provider.example.org` машиныг аль нэг хост руу хандахад амжилтгүй болоход хандаж болохоор болгож бэлдэх хэрэгтэй. Энэ машинд хоёр `carp` төхөөрөмж хэрэгтэй болох бөгөөд нэг нэгээрээ хоёр хосттой ажиллах юм. `rc.conf`-ийн зөв тохиргооны мөрүүд доор дурдсантай төсөөтэй байх болно:

    hostname="provider.example.org"
    ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
    cloned_interfaces="carp0 carp1"
    ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
    ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"

Хоёр `carp` төхөөрөмжтэй байх нь хариу өгөхөө байсан аль нэг машиныг мэдэж IP хаягийг нь авах боломжийг `provider.example.org` хостод олгох болно.

> Тэмдэглэл: Анхдагч FreeBSD цөм дээр preemption буюу өөр илүү өндөр давуу эрх бүхий бодлого/урсгалаар солигдох боломж идэвхжсэн байж болох юм. Хэрэв тийм бол `provider.example.org` нь IP хаягийг анхдагч агуулгын сервер рүү суллахгүй байж болох юм. Энэ тохиолдолд администратор мастер уруу буцааж IP-г хүчилж болох юм. Дараах тушаалыг `provider.example.org` дээр ажиллуулах шаардлагатай:

>     # ifconfig carp0 down && ifconfig carp0 up

> Хостод тохирох `carp` интерфэйс дээр үүнийг хийх ёстой.

Энэ хүрэхэд CARP бүрмөсөн идэвхжиж тест хийхэд бэлэн болсон байх ёстой. Сүлжээг дахин эхлүүлэх буюу эсвэл машинуудыг дахин ачаалаад тест хийгээрэй.

Дэлгэрэнгүй мэдээллийг carp(4) гарын авлагын хуудаснаас олж болно.

Өмнөх | Эхлэл | Дараах
Asynchronous Transfer Mode (ATM) буюу Асинхрон Дамжуулах Горим | Дээш | Хавсралтууд

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.