FreeBSD машин сүлжээгээр ачаалан локал дискгүйгээр NFS сервер дээр холбогдсон файлын системүүд ашиглаад ажиллаж чаддаг. Стандарт тохиргооны файлуудаас өөр системийн өөрчлөлт шаардлагагүй. Ийм системийг харьцангуй хялбараар тохируулж болдог. Учир нь шаардлагатай бүх элементүүд бэлэн байдаг:
Цөмийг сүлжээгээр ачаалах хоёр боломжит арга хамгийн багаар бодоход байдаг:
PXE: Intel®-ийн Preboot eXecution Environment буюу ачаалалт хийгдэхээс өмнөх ажиллуулах орчны систем нь зарим сүлжээний картууд эсвэл эх хавтангуудад цуг бүтээгдсэн байдаг ухаалаг ачаалах ROM-ийн нэг хэлбэр юм. Илүү дэлгэрэнгүйг pxeboot(8)-с үзнэ үү.
Etherboot порт (net/etherboot) нь цөмийг сүлжээгээр ачаалах ROM хийгдэх боломжтой код үүсгэдэг. Код нь сүлжээний картан дээр ачаалах ROM уруу шарагдсан байх юм уу эсвэл локал уян (эсвэл хатуу) дискний хөтчөөс эсвэл ажиллаж байгаа MS-DOS® системээс дуудагдахаар байдаг. Олон сүлжээний карт дэмжигдсэн байгаа.
Жишээ скрипт (/usr/share/examples/diskless/clone_root) нь сервер дээр ажлын станцын root файлын системийг үүсгэх болон түүний ажиллагааг хангах үйлдлийг хөнгөвчилдөг. Скрипт нь магадгүй жижиг өөрчлөлтийг шаардаж болох боловч энэ нь таныг хурдан эхлүүлэх болно.
Дискгүй системийн эхлүүлэлтийг илрүүлж дэмжих стандарт системийн эхлүүлэгч файлууд /etc санд байдаг.
swap хийх хэрэв шаардлагатай бол NFS файл эсвэл локал диск уруу хийж болох юм.
Дискгүй ажлын станцуудыг тохируулах олон арга байдаг. Олон элементүүд үүнд хамрагддаг бөгөөд өөрийн сонирхлоор ихэнхийг нь өөрчилж болно. Дараах нь бүрэн системийг тохируулах талаар хувилбаруудыг тайлбарлах болно. Ингэхдээ стандарт FreeBSD эхлүүлэх скриптүүдтэй хялбар, нийцтэй байхыг чухалчлах болно. Тайлбарласан систем нь дараах шинжүүдтэй байна:
Дискгүй ажлын станцууд нь хуваалцсан, зөвхөн уншигдах / файлын систем болон хуваалцсан, зөвхөн уншигдах /usr-г ашигладаг.
root файлын систем нь зөвхөн дискгүй ажиллагаатай холбоотой эсвэл тэдгээрийн харьяалагдах ажлын станцтай холбоотой зарим тохиргооны файлууд нь өөрчлөгдсөн стандарт FreeBSD root-ийн (ихэвчлэн серверийн) хуулбар юм.
Бичигдэх боломжтой байх root-ийн хэсэг нь md(4) файлын системээр дээр тавигддаг (overlaid). Систем дахин ачаалахад хийгдсэн өөрчлөлтүүд алга болох болно.
Цөм дамжуулагдаж Etherboot эсвэл PXE-ийн аль нэгээр дуудагддаг бөгөөд зарим тохиолдолд зөвхөн аль нэг аргыг ашиглахыг шаардаж болох юм.
Анхааруулга: Тайлбарласны дагуу энэ систем нь аюултай юм. Энэ нь сүлжээний хамгаалагдсан талбарт байх ёстой бөгөөд бусад хостуудаас хандахааргүй байх ёстой.
Энэ хэсгийн бүх мэдээллийг FreeBSD 5.2.1-RELEASE ашиглан тест хийсэн болно.
Дискгүй ажлын станцуудыг тохируулах нь харьцангуй амархан боловч алдаанд өртөх хандлагатай байдаг. Хэд хэдэн шалтгаанаас болоод эдгээрийг заримдаа оношлох төвөгтэй байдаг. Жишээ нь:
Эмхэтгэлтийн үеийн тохируулгууд нь ажиллах үед өөрөөр ажиллахыг тодорхойлж болох юм.
Алдааны мэдэгдлүүд нь ихэвчлэн нуугдмал эсвэл бүр байхгүй ч байж болно.
Энд гарч болзошгүй асуудлуудыг шийдэхэд үндсэн арга замуудын зарим нэг мэдлэгийг ашиглах нь маш ашигтай байдаг.
Амжилттайгаар эхлүүлэхийн тулд хэд хэдэн үйлдлүүдийг хийх хэрэгтэй:
Машин өөрийн IP хаяг, ажиллах файлын нэр, серверийн нэр, root зам зэрэг эхний параметрүүдийг авах хэрэгтэй. Үүнийг DHCP эсвэл BOOTP протоколуудыг ашиглан хийдэг. DHCP нь BOOTP-ийн нийцтэй өргөтгөл бөгөөд адил портын дугаарууд болон үндсэн пакетийн хэлбэршүүлэлтийг ашигладаг.
Зөвхөн BOOTP ашиглахаар системийг тохируулах боломжтой. bootpd(8) серверийн програм нь үндсэн FreeBSD системд орсон байдаг.
Гэхдээ DHCP нь BOOTP-ээс хэд хэдэн давуу талтай байдаг (илүү сайхан тохиргооны файлууд, PXE ашиглах боломж, дискгүй ажиллагаатай шууд холбоогүй бусад олон давуу талууд) бөгөөд бид голчлон DHCP тохиргоог боломжтой бол bootpd(8) ашиглан таарах жишээнүүдтэй нь хамт тайлбарлах болно. Жишээ тохиргоо нь ISC DHCP програм хангамжийн багцыг (тест сервер дээр 3.0.1.r12 хувилбар суулгагдсан) ашиглах болно.
Машин нь нэг буюу хэд хэдэн програмуудыг локал санах ой уруугаа дамжуулах хэрэгтэй болно. TFTP юм уу эсвэл NFS ашиглагдана. TFTP болон NFS-ийн сонголтыг хэд хэдэн газар эмхэтгэх үеийн тохируулгаар хийдэг. Алдааны түгээмэл эх үүсвэр нь буруу протоколд зориулж файлын нэрүүдийг заах явдал юм: TFTP нь сервер дээрх ганц сангаас бүх файлуудыг ихэвчлэн дамжуулдаг бөгөөд энэ сантай харьцангуй файлын нэрсийг хүлээдэг. NFS-д файлын туйлын (абсолют) замууд хэрэгтэй байдаг.
Боломжит дундын эхлүүлэх програмууд болон цөм нь эхлэн тохируулагдаж ажиллах шаардлагатай. Энд хэд хэдэн чухал хувилбарууд байдаг:
PXE нь FreeBSD-ийн гурав дахь шатны дуудагчийн өөрчлөгдсөн хувилбар болох pxeboot(8)-ийг ачаална. pxeboot(8) нь системийг эхлүүлэхэд шаардлагатай ихэнх параметрүүдийг авч хяналтыг дамжуулахаасаа өмнө тэдгээрийг цөмийн орчинд үлдээх болно. Энэ тохиолдолд GENERIC цөмийг ашиглах боломжтой.
Etherboot нь бага бэлтгэлтэйгээр цөмийг шууд ачаалах болно. Та цөмийг тусгай тохируулгуудтай бүтээх хэрэгтэй болно.
PXE болон Etherboot нь адилхан ажиллана; гэхдээ цөмүүд нь loader(8)-ийн тэдэнд зориулж илүү ажил хийх боломжийг олгодог болохоор PXE нь зохимжтой арга юм.
Хэрэв таны BIOS болон сүлжээний картууд нь PXE-г дэмждэг бол та үүнийг ашиглах хэрэгтэй байж болох юм.
Эцэст нь машин өөрийн файлын системүүдэд хандах хэрэгтэй болно. NFS нь бүх тохиолдолд хэрэглэгдэнэ.
diskless(8) гарын авлагын хуудсыг бас үзнэ үү.
ISC DHCP сервер BOOTP болон DHCP хүсэлтүүдэд хариулж чаддаг.
ISC DHCP 4.2 нь үндсэн системийн хэсэг биш юм. Та эхлээд net/isc-dhcp42-server порт юм уу эсвэл тохирох багцыг суулгах хэрэгтэй.
ISC DHCP суулгагдсаны дараа ажиллахын тулд тохиргооны файл хэрэгтэй болно (ихэвчлэн /usr/local/etc/dhcpd.conf гэж нэрлэгддэг). Доор margaux хост Etherboot-ийг ашигласан ба corbieres хост PXE-г ашиглаж байгаа тайлбар хийгдсэн жишээ байна:
default-lease-time 600; max-lease-time 7200; authoritative; option domain-name "example.com"; option domain-name-servers 192.168.4.1; option routers 192.168.4.1; subnet 192.168.4.0 netmask 255.255.255.0 { use-host-decl-names on; option subnet-mask 255.255.255.0; option broadcast-address 192.168.4.255; host margaux { hardware ethernet 01:23:45:67:89:ab; fixed-address margaux.example.com; next-server 192.168.4.4; filename "/data/misc/kernel.diskless"; option root-path "192.168.4.4:/data/misc/diskless"; } host corbieres { hardware ethernet 00:02:b3:27:62:df; fixed-address corbieres.example.com; next-server 192.168.4.4; filename "pxeboot"; option root-path "192.168.4.4:/data/misc/diskless"; } }
Энд bootpd-ийн адил тохиргоо (нэг клиент болгож багасгасан) байна. Үүнийг /etc/bootptab файлаас олж болно.
BOOTP-г ашиглахын тулд Etherboot-ийг анхдагч биш тохируулга NO_DHCP_SUPPORT-тойгоор эмхэтгэх ёстой бөгөөд PXE-д DHCP хэрэгтэй гэдгийг санаарай. bootpd-ийн цорын ганц илэрхий давуу тал бол үндсэн системд орсон байдаг явдал юм.
.def100:\ :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\ :sm=255.255.255.0:\ :ds=192.168.4.1:\ :gw=192.168.4.1:\ :hd="/tftpboot":\ :bf="/kernel.diskless":\ :rp="192.168.4.4:/data/misc/diskless": margaux:ha=0123456789ab:tc=.def100
Etherboot-ийн вэб сайт нь Линукс системд голчлон зориулагдсан боловч ашигтай мэдээлэл агуулсан өргөтгөсөн баримтыг агуулдаг. Дараах нь FreeBSD систем дээр Etherboot-г хэрхэн ашиглах талаар тайлбарлах болно.
Та эхлээд net/etherboot багц юм уу эсвэл портыг суулгах ёстой.
Etherboot-ийн тохиргоог Etherboot-ийн эх байгаа сан дахь Config файлыг засварлаж (өөрөөр хэлбэл NFS-ийн оронд TFTP-г ашиглахын тулд) өөрчилж болно.
Бидний тохиргооны хувьд бид ачаалах уян дискийг ашиглах болно. Бусад аргуудын хувьд (PROM, эсвэл MS-DOS програм) Etherboot-ийн баримтаас лавлана уу.
Ачаалах уян дискийг хийхийн тулд Etherboot суулгасан машин дээрх хөтөч уруугаа уян дискээ хийгээд Etherboot мод дахь src сан уруу болгож одоогийн сангаа солиод доор дурдсан тушаалыг бичнэ:
# gmake bin32/devicetype.fd0
devicetype нь дискгүй ажлын станц дахь Ethernet картын төрлөөс хамаарна. Зөв devicetype буюу төхөөрөмжийн төрлийг тодорхойлохын тулд тэр сан дахь NIC файлд хандана.
Анхдагчаар pxeboot(8) дуудагч нь NFS-ээр цөмийг дууддаг. /etc/make.conf файлд LOADER_TFTP_SUPPORT тохируулга заахын оронд TFTP-г ашиглахаар эмхэтгэгдэж болно. Заавруудын талаар /usr/share/examples/etc/make.conf файл дахь тайлбаруудыг үзнэ үү.
Цуваа консол дискгүй машин тохируулахад ашигтай байж болох make.conf файлын өөр хоёр тохируулга байдаг: эдгээр нь BOOT_PXELDR_PROBE_KEYBOARD, болон BOOT_PXELDR_ALWAYS_SERIAL юм.
Машин эхлэхэд PXE-г ашиглахын тулд та өөрийн BIOS-ийн тохируулгаас Boot from network буюу Сүлжээнээс ачаалах сонголтыг сонгох юм уу эсвэл PC-г эхлүүлж байх үед функцийн товчлуурыг дарах хэрэгтэй.
Хэрэв та TFTP ашиглахаар тохируулсан PXE юм уу эсвэл Etherboot-г ашиглаж байгаа бол файл сервер дээрээ tftpd-г идэвхжүүлэх хэрэгтэй:
tftpd-д зориулж файлууд байх сан үүсгэнэ, өөрөөр хэлбэл /tftpboot.
Энэ мөрийг өөрийн /etc/inetd.conf файлд нэмнэ:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
Тэмдэглэл: Зарим нэгэн PXE хувилбарууд нь TFTP-ийн TCP хувилбарыг хүсдэг байна. Энэ тохиолдолд dgram udp мөрийг stream tcp болгон сольж хоёр дахь мөрийг нэмнэ.
inetd-д өөрийн тохиргооны файлаа
дахин уншихыг хэлээрэй. Энэ тушаалыг зөв
ажиллуулахын тулд /etc/rc.conf
файлд inetd_enable="YES"
тохируулга
заагдсан байх ёстой:
# /etc/rc.d/inetd restart
Та tftpboot санг серверийнхээ хаана ч байрлуулж болно. inetd.conf болон dhcpd.conf файлууд дээрээ байрлалаа заасан эсэхээ шалгаарай.
Аль ч тохиолдолд та бас NFS-ээ идэвхжүүлж NFS сервер дээрээ тохирох файлын системээ экспорт хийх хэрэгтэй юм.
Үүнийг /etc/rc.conf-д нэмнэ:
nfs_server_enable="YES"
Доор дурдсаныг /etc/exports файл уруу нэмж дискгүй root сан байгаа файлын системээ экспорт хийнэ (эзлэхүүний холбох цэгийг тааруулж margaux corbieres гэснийг дискгүй ажлын станцуудын нэрсээр солих хэрэгтэй):
/data/misc -alldirs -ro margaux corbieres
mountd-д өөрийн тохиргооны файлаа дахин уншихыг хэлнэ. Хэрэв та эхний шатандаа NFS-г /etc/rc.conf файлд идэвхжүүлэх хэрэгтэй болсон бол харин дахин ачаалахыг хүсэж болох юм.
# /etc/rc.d/mountd restart
Хэрэв Etherboot-г ашиглаж байгаа бол дискгүй клиентдээ зориулж дараах тохируулгуудтайгаар (ердийн тохируулгуудын хамтаар) цөмийн тохиргооны файл үүсгэх хэрэгтэй:
options BOOTP # Use BOOTP to obtain IP address/hostname options BOOTP_NFSROOT # NFS mount root file system using BOOTP info
Та бас BOOTP_NFSV3, BOOT_COMPAT болон BOOTP_WIRED_TO (NOTES файлаас лавлана уу) тохируулгуудыг ашиглахыг хүсэж болох юм.
Эдгээр тохируулгуудын нэрс нь уламжлалт бөгөөд тэдгээр нь яг үнэндээ DHCP болон BOOTP-ийн өөр хэрэглээг цөм дотор идэвхжүүлдэг болохоор нэлээн төөрөгдөлд хүргэж болох юм (зөвхөн BOOTP эсвэл DHCP-ийн хэрэглээг ашиглахаар болгох бас боломжтой байдаг).
Цөмийг бүтээж (Бүлэг 9-г үзнэ үү), dhcpd.conf файлд заасан байрлал уруу хуулах хэрэгтэй.
Тэмдэглэл: PXE-г ашиглаж байгаа үед дээрх тохируулгуудтайгаар цөмийг бүтээх нь заавал шаардлагагүй (хэдийгээр зөвлөдөг боловч). Тэдгээрийг идэвхжүүлэх нь цөмийг эхлүүлэх явцад илүү олон DHCP хүсэлтүүдийг үүсгэж шинэ утгууд болон зарим тусгай тохиолдлуудад pxeboot(8)-ийн авсан утгуудын хооронд нийцэмжгүй байдлын жижиг эрсдэл гаргахад хүргэдэг. Тэдгээрийг ашиглахын давуу тал нь буруу нөлөөллөөс болоод хостын нэр тохируулагддаг явдал юм. Үгүй бол та хостын нэрийг өөр аргаар, жишээ нь клиентэд тусгайлан зориулсан rc.conf файлд тохируулах хэрэгтэй болно.
Тэмдэглэл: Etherboot-ээр дуудагдах боломжтой байхын тулд цөмд төхөөрөмжийн бяцхан зааврууд эмхэтгэгдсэн байх хэрэгтэй байдаг. Ингэхдээ та дараах тохируулгыг тохиргооны файлдаа тохируулах болно (NOTES тохиргооны тайлбаруудын файлыг үзнэ үү):
hints "GENERIC.hints"
Дискгүй ажлын станцад зориулж dhcpd.conf файлд root-path гэж жагсаагдсан байрлалд root файлын системийг та үүсгэх хэрэгтэй.
Энэ арга нь хурдан байх бөгөөд бүрэн онгон системийг (зөвхөн root файлын систем биш) DESTDIR уруу суулгах болно. Та дараах скриптийг л ердөө ажиллуулах хэрэгтэй болно:
#!/bin/sh export DESTDIR=/data/misc/diskless mkdir -p ${DESTDIR} cd /usr/src; make buildworld && make buildkernel make installworld && make installkernel cd /usr/src/etc; make distribution
Үүнийг хийсний дараа танд өөрийнхөө хэрэгцээний дагуу DESTDIR-д байрлуулагдсан өөрийн /etc/rc.conf болон /etc/fstab файлуудаа өөрчлөн тохируулах шаардлага гарч болох юм.
Шаардлагатай бол сервер дээр байрласан swap файлд NFS-ээр хандаж болно.
Цөм нь ачаалах үед NFS swap-ийг идэвхжүүлэхийг дэмждэггүй. Бичигдэх файлын системийг холбож swap файлыг үүсгэн идэвхжүүлэх замаар эхлүүлэх скриптүүдээр swap нь идэвхжүүлэгдэх ёстой. Зохих хэмжээ бүхий swap файлыг үүсгэхдээ та ингэж хийж болно:
# dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000
Үүнийг идэвхжүүлэхийн тулд та дараах мөрийг өөрийн rc.conf файлд нэмэх хэрэгтэй:
swapfile=/path/to/swapfile
Хэрэв дискгүй ажлын станц нь X-ийг ажиллуулахаар тохируулагдсан бол анхдагчаар /usr-т алдааны бүртгэлийг хийдэг XDM тохиргооны файлыг та тааруулах хэрэгтэй болно.
root файлын системд зориулсан сервер нь FreeBSD-г ажиллуулаагүй бол та FreeBSD машин дээр root файлын систем үүсгээд хэрэгтэй байрлал уруу нь tar эсвэл cpio тушаал ашиглан хуулах хэрэгтэй болно.
Энэ тохиолдолд бүхэл тооны их/бага (major/minor) хэмжээнүүдийн ялгаанаас болоод /dev дахь тусгай файлуудад заримдаа асуудал гардаг. Энэ асуудлын шийдэл нь FreeBSD биш серверээс уг санг экспорт хийж энэ сангаа FreeBSD машин дээр холбон хэрэглэгчийн хувьд төхөөрөмжийн цэгүүдийг харагдахгүйгээр (transparently) хуваарилахын тулд devfs(5)-ийг ашиглах явдал юм.
Өмнөх | Эхлэл | Дараах |
Холбоос нэгтгэлт ба ослыг тойрон гарах (Link Aggregation and Failover) | Дээш | NFS root файлын систем ашиглан PXE ачаалалт хийх |
Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.
FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай
холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим
захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт
байвал <admin@mnbsd.org>
хаягаар цахим захидал явуулна уу.