From 3af0e9114434e69262c5b30be67893ce8e4a9f71 Mon Sep 17 00:00:00 2001 From: Ganbold Tsagaankhuu Date: Thu, 10 Mar 2011 15:09:23 +0000 Subject: [PATCH] MFen: Resync with the English version of the handbook Obtained from: FreeBSD Mongolian Documentation project --- mn_MN.UTF-8/books/handbook/disks/chapter.sgml | 652 +++++++++++++++++- 1 file changed, 651 insertions(+), 1 deletion(-) diff --git a/mn_MN.UTF-8/books/handbook/disks/chapter.sgml b/mn_MN.UTF-8/books/handbook/disks/chapter.sgml index 354230da49..8929225e3b 100644 --- a/mn_MN.UTF-8/books/handbook/disks/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/disks/chapter.sgml @@ -1,7 +1,7 @@ @@ -3893,6 +3893,656 @@ Device 1K-blocks Used Avail Capacity + + + + + Даниел + Гэрзо + Хувь нэмэр болгон оруулсан + + + + + Фредди + Кэш + Зарим нэг зүйлс нэмэрлэсэн + + + Павел Жакуб + Давидек + + + Майкл В. + Лукас + + + Виктор + Петерсон + + + + + + Highly Available Storage (HAST) + + HAST + high availability + + + + Ерөнхий зүйл + + Байнгын бэлэн ажиллагаатай байх (High-availability) нь + бизнесийн чухал програм хангамжуудын хувьд хамгийн гол + шаардлага бөгөөд тийм хадгалалтын төхөөрөмж нь уг орчны + түлхүүр хэсэг юм. Highly Available STorage буюу + HASTHighly Available + STorage-г &a.pjd; хөгжүүлсэн бөгөөд + энэ нь өгөгдлийг TCP/IP сүлжээнд холбогдсон хэд хэдэн + тусдаа байгаа машинууд дээр тунгалгаар хадгалах боломжийг + бүрдүүлдэг. HAST-г сүлжээний RAID1 (толь) гэж + ойлгож болох бөгөөд GNU/&linux; тавцангийн хувьд байдаг + DRBD® хадгалалтын системтэй төстэй юм. CARP + зэрэг &os;-н бусад байнгын бэлэн ажиллагааг хангагч боломжуудын хамтаар + HAST нь тоног төхөөрөмжийн эвдрэлээс ангид + байнгын бэлэн ажиллагаатай хадгалалтын кластер бүтээх боломжийг + бүрдүүлдэг. + + Энэ хэсгийг уншаад та дараах зүйлсийг мэдэх болно: + + + + HAST гэж юу болох, хэрхэн ажилладаг болон + ямар боломжуудыг хангадаг талаар. + + + &os; дээр HAST-г хэрхэн тохируулж + ашиглах талаар. + + + CARP болон &man.devd.8;-г + хэрхэн тохируулж уян хатан хадгалалтын систем бүтээх талаар. + + + + Энэ хэсгийг уншихаасаа өмнө та дараах зүйлсийг мэдсэн байх шаардлагатай: + + + + &unix; болон &os;-ийн үндсийг ойлгосон байх + (). + + + Сүлжээний интерфэйсүүд болон &os;-н бусад гол дэд системүүдийг хэрхэн + тохируулах талаар мэддэг байх (). + + + &os;-н сүлжээний талаар сайн мэддэг байх + (). + + + &os; 8.1-RELEASE буюу түүнээс хойшхи хувилбарыг ашиглах. + + + + HAST төслийг &os; сан OMCnet Internet Service GmbH + болон TransIP BV-н дэмжлэгтэйгээр + санхүүжүүлжээ. + + + + HAST-н боломжууд + + HAST системийн гол + боломжуудад: + + + + Локал хатуу дискний хөтчүүд дээрх I/O алдаануудыг + халхлахад ашиглаж болох боломж. + + + &os;-н дэмждэг дурын файлын системийг ашиглах боломжийг + бүрдүүлдэг файлын системээс үл хамаарсан байдал. + + + Тухайн цэг унасан байх үед зөвхөн өөрчлөгдсөн блокуудыг синхрончлох замаар + үр ашигтай, хурдан дахин синхрончлох боломж. + + + + Нэмэлт нөөц бололцоог нэмэхийн тулд + аль хэдийн бий болгосон орчинд ашиглах боломж. + + + CARP, + Heartbeat эсвэл бусад + хэрэгслүүдийн хамтаар уян хатан, бөх бат хадгалалтын + системийг бүтээхэд цуг ашиглаж боломж. + + + + + + HAST-н ажиллагаа + + HAST нь дурын хадгалалтын төхөөрөмжийн + хувьд блок түвшний синхрон олшруулалтыг хэд хэдэн машин уруу + хийдэг болохоор хамгийн багадаа хоёр цэг (физик машинууд) шаарддаг + — Эдгээр нь анхдагч (бас + мастер гэгддэг) цэг болон + хоёрдогч (боол) цэг юм. + Энэ хоёр машиныг хамтад нь кластер гэж дуудах болно. + + + HAST нь одоогоор хоёр кластерын цэгээр + хязгаарлагдсан байгаа. + + + HAST нь анхдагч-хоёрдогч тохиргоогоор + ажилладаг болохоор тухайн үед зөвхөн нэг кластерын цэгийг + идэвхтэй байхыг зөвшөөрдөг. анхдагч цэг буюу + актив нь HAST-р удирдуулсан + төхөөрөмжүүдэд хандах I/O хүсэлтүүдтэй ажилладаг цэг юм. + хоёрдогч цэг нь дараа нь primary + цэгээсээ автоматаар синхрончлогддог. + + HAST системийн + физик хэсгүүд нь: + + + + локал диск (анхдагч цэг дээрх) + + + алсын машин дээрх диск (хоёрдогч цэг) + + + + HAST нь блок түвшинд синхроноор + ажилладаг бөгөөд энэ нь файлын системүүд болон програм хангамжуудын + хувьд тунгалаг болгодог. HAST нь + бусад хэрэгслүүд эсвэл програм хангамжуудад ашиглах боломжтойгоор + /dev/hast/ санд ердийн + GEOM үйлчилгээ үзүүлэгчдээр хангадаг бөгөөд ингэснээр + HAST-р хангагдсан төхөөрөмжүүд болон + түүхий дискнүүд, хуваалтууд гэх зэргүүдийн хооронд ялгаа байхгүй + болдог байна. + + Бичих, устгах, эсвэл flush үйлдэл бүрийг локал диск болон + алсын диск рүү TCP/IP ашиглан илгээдэг. Унших үйлдэлд + локал диск дээрх мэдээлэл шинэ биш эсвэл I/O алдаа гараагүй л бол + локал дискнээс хариу өгдөг. Хэрэв тийм тохиолдол байвал + унших үйлдлийг хоёрдогч цэг рүү илгээдэг. + + + Синхрончлол ба Олшруулалтын горимууд + + HAST нь унасан байдлаас хурдан сэргээх + боломжийг бий болгохыг оролддог. Энэ зорилгоор цэг унасны дараа + синхрончлох хугацааг багасгах нь хамгийн чухал юм. Синхрончлолыг + хурдан хангахын тулд HAST нь диск дээрх + бохир өгөгдлүүдийн битмапыг зохицуулж байдаг бөгөөд ердийн + синхрончлолын үед зөвхөн тэдгээрийг синхрончилдог (эхний синхрончлолыг + тооцолгүйгээр). + + Синхрончлолтой ажиллах олон аргууд байдаг. + HAST нь янз бүрийн синхрончлолын аргуудтай (доор дурдсан) + ажиллахын тулд хэд хэдэн олшруулалтын горимыг хийдэг: + + + + memsync: локал бичих үйлдэл + дууссан ба алсын цэг өгөгдөл ирснийг баталгаажуулсан бөгөөд + өгөгдлийг яг хадгалахаас өмнөх үед бичих үйлдэл дууссан гэж үздэг. + Алсын цэг дээрх өгөгдөл баталгаажуулалт илгээгдсэний дараа + хадгалагддаг. Энэ горим нь саатлыг багасгах зориулалттай + бөгөөд маш сайн найдвартай байдлыг хангадаг. + memsync олшруулалтын горим нь одоогоор + хийгдээгүй байгаа. + + + fullsync: локал болон алсын бичих + үйлдэл хийгдэж дууссаны дараа бичих үйлдэл дууссан гэж үздэг. Энэ нь + хамгийн найдвартай бөгөөд удаан горим юм. Энэ горим нь анхдагч + байдаг. + + + async: локал бичих үйлдэл дууссан үед + бичих үйлдлийг дууссан гэж үздэг. Энэ нь хамгийн хурдан бөгөөд + аюултай олшруулалтын горим юм. Энэ горимыг бусад горимын хувьд + саатал хэтэрхий өндөр байгаа алсын цэг рүү олшруулахдаа + ашиглах ёстой. async олшруулалтын горим + одоогоор хийгдээгүй байгаа. + + + + + Зөвхөн fullsync олшруулалтын горим + одоогоор дэмжигдсэн. + + + + + + HAST-н тохиргоо + + HAST нь ажиллахын тулд + GEOM_GATE дэмжлэгийг шаарддаг. + GENERIC цөм нь анхдагчаар + GENERICагуулдаггүй + боловч &os;-н анхдагч суулгацад дуудагдах боломжтой + geom_gate.ko модуль байдаг. + Мөн дараах мөрийг цөмийн тохиргооны файлд нэмэн + GEOM_GATE дэмжлэгийг цөмд оруулан бүтээж + болдог: + + options GEOM_GATE + + HAST тогтолцоо нь үйлдлийн + системийн өнцгөөс харахад хэд хэдэн хэсгээс тогтдог: + + + + өгөгдлийн синхрончлолд зориулсан &man.hastd.8; + демон, + + + хэрэглэгчийн талбарын удирдлагын хэрэгсэл &man.hastctl.8;, + + + &man.hast.conf.5; тохиргооны файл. + + + + Дараах жишээ хоёр цэгийг + мастер-боол / + анхдагч-хоёрдогч + үйлдлийн хувьд өгөгдлийг уг хоёр цэгийн хооронд олшруулахын + тулд HAST ашиглан тохируулах талаар + тайлбарлана. Цэгүүдийг 172.16.0.1 IP + хаягтай hasta болон + 172.16.0.2 IP хаягтай + hastb гэж нэрлэе. + Эдгээр цэгүүд нь HAST үйлдлийн хувьд ижил хэмжээтэй + өөр өөрийн /dev/ad6 + хатуу дисктэй байна. HAST нөөцийг (заримдаа + эх үүсвэр гэгддэг, өөрөөр хэлбэл /dev/hast/ дахь GEOM үйлчилгээ + үзүүлэгч) test + гэж нэрлэнэ. + + HAST-н тохиргоог + /etc/hast.conf файлд хийнэ. Энэ файл нь + хоёр цэг дээр ижил байх ёстой. Боломжит хамгийн хялбар + тохиргоо дараах байдалтай байна: + + resource test { + on hasta { + local /dev/ad6 + remote 172.16.0.2 + } + on hastb { + local /dev/ad6 + remote 172.16.0.1 + } +} + + Илүү дэлгэрэнгүй тохиргооны талаар + &man.hast.conf.5; гарын авлагаас үзнэ үү. + + + Мөн remote гэсэн хэсэгт хостын + нэрийг ашиглаж бас болно. Тэр тохиолдолд тэдгээр хостуудыг + таних боломжтой байх ёстойг анхаараарай, өөрөөр хэлбэл + тэдгээр нь /etc/hosts файл юм уу эсвэл + локал DNS дээр тодорхойлогдсон байх + ёстой. + + + Одоо хоёр цэг дээр тохиргоо байгаа болохоор + HAST нөөцийг үүсгэх боломжтой. Хоёр + цэг дээр дараах тушаалыг ажиллуулж эхний мета өгөгдлийг + локал диск дээр байрлуулж &man.hastd.8; демонг ажиллуулна: + + &prompt.root; hastctl create test +&prompt.root; /etc/rc.d/hastd onestart + + + GEOM үйлчилгээ үзүүлэгчдийг одоо байгаа файлын + систем дээр ашиглаж болохгүй + (жишээ нь HAST-р удирдуулсан нөөц рүү + одоо байгаа хадгалалтын төхөөрөмжийг хувиргах). Учир нь + энэ процедур нь ямар нэг мета өгөгдлийг үйлчилгээ + үзүүлэгч дээр хадгалах хэрэгтэй байдаг бөгөөд шаардлагатай + зай хангалттай байхгүй байх болно. + + + HAST нь цэгийн үүргийг сонгох үүрэггүй + (анхдагч эсвэл хоёрдогч). + Цэгийн үүргийг администратор тохируулах юм уу эсвэл + &man.hastctl.8; хэрэгсэл ашиглан Heartbeat + зэрэг бусад програмаар тохируулж болно. Анхдагч цэг рүү + (hasta) шилжээд + дараах тушаалыг өгнө: + + &prompt.root; hastctl role primary test + + Үүнтэй адилаар хоёрдогч цэг дээр + (hastb) + дараах тушаалыг ажиллуулна: + + &prompt.root; hastctl role secondary test + + + Хоёр цэг хоорондоо холбогдож чадахгүй бөгөөд + хоёулаа анхдагч гэж тохируулагдсан байж болно. Энэ + нөхцлийг split-brain гэж нэрлэдэг. + Энэ тохиолдолд алдааг олж засварлахын тулд хэсэгт зааснаар ажиллана. + + + Үр дүнг хоёр цэг дээр &man.hastctl.8; хэрэгсэл + ашиглан шалгаж болно: + + &prompt.root; hastctl status test + + Гаралтаас хамгийн чухал текст нь status + мөр бөгөөд хоёр цэг дээр complete гэж + байх ёстой. Хэрэв энэ нь degraded + гэж байх юм бол ямар нэг юм болохоо больсныг илтгэнэ. + Энэ үед цэгүүдийн хооронд синхрончлол явагдаад эхэлчихсэн + байна. hastctl status тушаал + dirty гэдэг дээр 0 байт харуулж байвал + синхрончлол дууссан гэсэн үг юм. + + + Эцсийн алхам бол /dev/hast/test + GEOM үйлчилгээ үзүүлэгч дээр файлын систем үүсгэж холбох явдал юм. + Үүнийг анхдагч цэг (учир нь + /dev/hast/test + зөвхөн primary цэг дээр харагдана) дээр + хийх ёстой бөгөөд хатуу дискийн хэмжээнээс хамаарч хэдэн + минут үргэлжилж болох юм: + + &prompt.root; newfs -U /dev/hast/test +&prompt.root; mkdir /hast/test +&prompt.root; mount /dev/hast/test /hast/test + + HAST тогтолцоог зөв тохируулсны дараа + хамгийн сүүлийн алхам бол HAST систем + ачаалах үед автоматаар эхэлсэн байхыг шалгах явдал юм. + Дараах мөрийг /etc/rc.conf файлд + нэмж өгөх шаардлагатай: + + hastd_enable="YES" + + + Нэгээс нөгөөд шилжих тохиргоо + + Энэ жишээний зорилго нь өгөгдсөн дурын цэг ажиллахаа + больсон тохиолдолд ажиллаж байх уян хатан хадгалалтын + систем бүтээх явдал юм. Энд хамгийн түлхүүр ажил бол + кластерын анхдагч цэг ажиллахаа болих + тохиолдлыг байхгүй болгох юм. Хэрэв боллоо гэхэд + хоёрдогч цэг сааталгүйгээр авч + ажиллан файлын системийг шалган холбож өгөгдлийн нэг + ч битийг алдалгүйгээр үргэлжлүүлэн ажиллах ёстой. + + Энэ зорилтод хүрэхийн тулд &os;-ийн өөр нэг боломж + болох IP давхарга дээр автоматаар шилжих боломжийг + бүрдүүлдэг CARP-г ашиглах шаардлагатай + байдаг. CARP нь Common Address Redundancy Protocol + гэсэн үг бөгөөд ижил сүлжээнд олон хостууд IP хаяг + хуваалцаж хэрэглэх боломжийг бүрдүүлдэг. CARP-г + кластерын цэг бүр дээр хэсэгт зааснаар + тохируулна. Үүнийг хийснийхээ дараа цэг бүр + хуваалцсан IP 172.16.0.254 гэсэн + хаягтай carp0 гэсэн интерфэйстэй байх + болно. Мэдээж кластерын анхдагч HAST цэг + мастер CARP цэг байх ёстой. + + Өмнөх хэсэгт үүсгэсэн HAST нөөц + сүлжээн дэх бусад хостууд руу экспорт хийгдэхэд + бэлэн болсон байна. Үүнийг NFS, + Samba гэх мэтүүдийн тусламжтайгаар + хуваалцсан IP хаяг 172.16.0.254 + ашиглан экспорт хийх замаар хийнэ. Шийдэгдээгүй цор + ганц асуудал бол анхдагч цэг унахад автоматаар шилжих + асуудал юм. + + Хэрэв CARP интерфэйсүүд унаж босоод + байвал &os; үйлдлийн систем &man.devd.8; үйл явдал гаргах + бөгөөд энэ нь CARP интерфэйсүүд дээр + төлвийг харах боломжийг бүрдүүлдэг. CARP + интерфэйс дээрх төлвийн өөрчлөлт нь аль нэг цэг ажиллахаа + байсан эсвэл ажиллаж эхэлснийг харуулна. Энэ тохиолдолд + шилжилтийг автоматаар зохицуулах тусгай скриптийг + ажиллуулах боломжтой юм. + + CARP интерфэйсүүд дээрх төлвийн өөрчлөлтүүдийг + барьж чадахын тулд дараах тохиргоог цэг бүр дээр + /etc/devd.conf файлд хийж өгөх ёстой: + + notify 30 { + match "system" "IFNET"; + match "subsystem" "carp0"; + match "type" "LINK_UP"; + action "/usr/local/sbin/carp-hast-switch master"; +}; + +notify 30 { + match "system" "IFNET"; + match "subsystem" "carp0"; + match "type" "LINK_DOWN"; + action "/usr/local/sbin/carp-hast-switch slave"; +}; + + Шинэ тохиргоог идэвхтэй болгохын тулд + дараах тушаалыг цэг бүр дээр ажиллуулна: + + &prompt.root; /etc/rc.d/devd restart + + carp0 интерфэйс унаж босож байгаа + тохиолдолд (өөрөөр хэлбэр интерфэйсийн төлөв өөрчлөлгдсөн тохиолдолд) + систем мэдээлэл өгөх бөгөөд энэ нь &man.devd.8; дэд системд + скрипт ажиллуулах боломжийг бүрдүүлэх бөгөөд энэ тохиолдолд + /usr/local/sbin/carp-hast-switch байна. Энэ скрипт нь + автоматаар шилжих шилжилтийг зохицуулах юм. Дээрх &man.devd.8; + тохиргооны талаар дэлгэрэнгүйг &man.devd.conf.5; гарын авлагаас + үзнэ үү. + + Ийм скриптийн жишээ дараах байдлаар байж болох юм: + +#!/bin/sh + +# Original script by Freddie Cash <fjwcash@gmail.com> +# Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org> +# and Viktor Petersson <vpetersson@wireload.net> + +# The names of the HAST resources, as listed in /etc/hast.conf +resources="test" + +# delay in mounting HAST resource after becoming master +# make your best guess +delay=3 + +# logging +log="local0.debug" +name="carp-hast" + +# end of user configurable stuff + +case "$1" in + master) + logger -p $log -t $name "Switching to primary provider for ${resources}." + sleep ${delay} + + # Wait for any "hastd secondary" processes to stop + for disk in ${resources}; do + while $( pgrep -lf "hastd: ${disk} \(secondary\)" > /dev/null 2>&1 ); do + sleep 1 + done + + # Switch role for each disk + hastctl role primary ${disk} + if [ $? -ne 0 ]; then + logger -p $log -t $name "Unable to change role to primary for resource ${disk}." + exit 1 + fi + done + + # Wait for the /dev/hast/* devices to appear + for disk in ${resources}; do + for I in $( jot 60 ); do + [ -c "/dev/hast/${disk}" ] && break + sleep 0.5 + done + + if [ ! -c "/dev/hast/${disk}" ]; then + logger -p $log -t $name "GEOM provider /dev/hast/${disk} did not appear." + exit 1 + fi + done + + logger -p $log -t $name "Role for HAST resources ${resources} switched to primary." + + + logger -p $log -t $name "Mounting disks." + for disk in ${resources}; do + mkdir -p /hast/${disk} + fsck -p -y -t ufs /dev/hast/${disk} + mount /dev/hast/${disk} /hast/${disk} + done + + ;; + + slave) + logger -p $log -t $name "Switching to secondary provider for ${resources}." + + # Switch roles for the HAST resources + for disk in ${resources}; do + if ! mount | grep -q "^/dev/hast/${disk} on " + then + else + umount -f /hast/${disk} + fi + sleep $delay + hastctl role secondary ${disk} 2>&1 + if [ $? -ne 0 ]; then + logger -p $log -t $name "Unable to switch role to secondary for resource ${disk}." + exit 1 + fi + logger -p $log -t $name "Role switched to secondary for resource ${disk}." + done + ;; +esac + + Товчхондоо скрипт нь цэг мастер / + анхдагч болох үед дараахийг хийнэ: + + + + Өгөгдсөн цэг дээр HAST нөөцийг анхдагч + болгоно. + + + HAST нөөц доор байгаа файлын системийг + шалгана. + + + Тохирох газарт нь нөөцүүдийг холбоно. + + + + нөөц / + хоёрдогч болсон тохиолдолд: + + + + HAST нөөцүүдийг салгана. + + + HAST нөөцүүдийг хоёрдогч болгож + бууруулна. + + + + + Энэ нь зөвхөн боломжой шийдэл байдаг гэдгийг харуулсан + жишээ скрипт гэдгийг санаарай. Энэ нь бүх л боломжит + нөхцлийг тооцоогүй бөгөөд шаардлагатай үйлчилгээг эхлүүлэх/зогсоох + гэх мэтээр сайжруулж өргөтгөх юм уу эсвэл + дураараа өөрчлөх боломжтой юм. + + + + Энэ жишээн дээр бид стандарт UFS файлын системийг + ашигласан. Сэргээхэд шаардлагатай цагийг багасгахын + тулд журнал дэмжигдсэн UFS эсвэл ZFS файлын системийг + ашиглаж болох юм. + + + Нэмэлт жишээнүүд бүхий илүү дэлгэрэнгүй мэдээллийг + HAST Wiki хуудаснаас + олж болно. + + + + Алдааг олж засварлах + + + Алдааг олж засварлах ерөнхий аргууд + + HAST ерөнхийдөө асуудалгүй ажиллах + ёстой боловч бусад програмуудын нэгэн адил ажиллах ёстойгоосоо + өөрөөр ажиллах тохиолдол байдаг. Асуудлын шалтгаан өөр өөр + байж болох боловч гол шалгах юм нь кластерын цэгүүдийн + хооронд цаг синхрончлогдсон байгаа эсэхийг мэдэх явдал + юм. + + HAST-н асуудлуудыг шалгаж байхдаа + &man.hastd.8;-н дибаг түвшинг ихэсгэж үзэх ёстой. + Ингэхдээ &man.hastd.8;-г -d өгөгдөлтэйгээр + ажиллуулах хэрэгтэй. Дибаг түвшинг дахин дахин ихэсгэхийн + тулд энэ аргументыг олон удаа тавьж өгч болно. Энэ замаар + маш их хэрэгтэй мэдээллийг олж авч болно. + Мөн -F аргументыг ашиглан &man.hastd.8; + демонг ил ажиллуулах нь зүйтэй байдаг. + + + + Split-brain нөхцлөөс сэргэж гарах + + Хоёр цэг нэг нэгэнтэйгээ холбогдож чадахгүй бөгөөд + хоёул анхдагч цэг гэж тохируулагдсан үеийн нөхцлийг + split-brain гэдэг. Энэ нь аюултай нөхцөл + бөгөөд учир нь энэ тохиолдолд өгөгдөлд хоёр цэг хоёул + нийцгүй өөрчлөлтийг хийх боломжийг олгодог. Энэ нөхцлийг + системийн администратор гараар зохицуулах шаардлагатай. + + Энэ тохиолдлыг засварлахын тулд администратор + аль цэг хамгийн чухал өөрчлөлттэй байгаа дээр шийдвэр + гаргаж (эсвэл гараар нийлүүлэн) HAST-д + эвдэрсэн өгөгдөл бүхий цэгийн бүтэн синхрончлол хийх + боломжийг олгох ёстой. Ингэхийн тулд дараах тушаалуудыг + дахин синхрончлол шаардлагатай байгаа цэг дээр ажиллуулна: + + &prompt.root; hastctl role init <resource> +&prompt.root; hastctl create <resource> +&prompt.root; hastctl role secondary <resource> + + +