ນີ້ແມ່ນຄໍາສັ່ງ nbdkit ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນສະຖານີເຮັດວຽກອອນໄລນ໌ຟຣີຫຼາຍອັນຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
nbdkit - ຊຸດເຄື່ອງມືສໍາລັບການສ້າງເຄື່ອງແມ່ຂ່າຍ NBD
ສະຫຼຸບສັງລວມ
nbdkit [--dump-config] [-f] [-g GROUP] [-i IPADDR]
[-P PIDFILE] [-p PORT] [-r] [--ແລ່ນ CMD] [-s]
[-U SOCKET] [-u USER] [-v] [-V]
PLUGIN [key=value [key=value [...]]]
ລາຍລະອຽດ
Network Block Device (NBD) ແມ່ນໂປໂຕຄອນເຄືອຂ່າຍສໍາລັບການເຂົ້າເຖິງອຸປະກອນຕັນຜ່ານ
ເຄືອຂ່າຍ. ອຸປະກອນບລັອກແມ່ນຮາດດິດແລະສິ່ງທີ່ເຮັດຫນ້າທີ່ຄ້າຍຄືກັບຮາດດິດເຊັ່ນແຜ່ນດິດ
ຮູບພາບແລະເຄື່ອງ virtual.
"nbdkit" ເປັນທັງຊຸດເຄື່ອງມືສໍາລັບການສ້າງເຄື່ອງແມ່ຂ່າຍ NBD ຈາກແຫຼ່ງ "ບໍ່ທໍາມະດາ" ແລະ
ຊື່ຂອງເຄື່ອງແມ່ຂ່າຍ NBD.
ເພື່ອສ້າງແຫຼ່ງອຸປະກອນບລັອກເຄືອຂ່າຍໃຫມ່, ທັງຫມົດທີ່ທ່ານຈໍາເປັນຕ້ອງເຮັດແມ່ນຂຽນກາວບໍ່ຫຼາຍປານໃດ
ຟັງຊັນ, ອາດຈະເປັນພາສາ C, ຫຼືບາງທີໃນພາສາລະດັບສູງເຊັ່ນ Perl ຫຼື Python. ໄດ້
ການອອກໃບອະນຸຍາດແບບເສລີຂອງ nbdkit ແມ່ນຫມາຍເຖິງການອະນຸຍາດໃຫ້ທ່ານເຊື່ອມຕໍ່ nbdkit ກັບເຈົ້າຂອງ.
ຫ້ອງສະຫມຸດຫຼືເພື່ອລວມ nbdkit ໃນລະຫັດເປັນເຈົ້າຂອງ.
ຖ້າທ່ານຕ້ອງການຂຽນ plugin nbdkit, ທ່ານຄວນອ່ານ nbdkit-plugin(3).
ອາດຈະພົບປລັກອິນຫຼາຍອັນໃນ "$libdir/nbdkit/plugins". ທ່ານສາມາດໃຫ້ເສັ້ນທາງເຕັມໄປ
plugin, ເຊັ່ນນີ້:
nbdkit $libdir/nbdkit/plugins/nbdkit-file-plugin.so [... ]
ແຕ່ປົກກະຕິແລ້ວມັນສະດວກກວ່າທີ່ຈະໃຊ້ syntax ທຽບເທົ່ານີ້:
ໄຟລ໌ nbdkit [... ]
$libdir ຖືກກໍານົດໃນເວລາລວບລວມ. ເພື່ອພິມມັນອອກ, ເຮັດ:
nbdkit --dump-config
ຕົວຢ່າງ
ໃຫ້ບໍລິການໄຟລ໌ "disk.img" ໃນພອດ 10809:
nbdkit file file=disk.img
ດໍາເນີນການ plugin example1 ແລະເຊື່ອມຕໍ່ກັບມັນໂດຍໃຊ້ ປາແຂກ(1):
nbdkit ຕົວຢ່າງ 1
guestfish --ro -a nbd://localhost
ດໍາເນີນການ plugin example3 ແລະເຊື່ອມຕໍ່ກັບມັນໂດຍໃຊ້ ປາແຂກ(1):
nbdkit example3 size=1G
guestfish --ro -a nbd://localhost
ເພື່ອສະແດງຂໍ້ມູນການນຳໃຊ້ກ່ຽວກັບປລັກອິນສະເພາະ:
nbdkit --help example1
GLOBAL OPTIONS
- ຊ່ວຍ
ສະແດງຂໍ້ມູນການນຳໃຊ້ເສັ້ນຄຳສັ່ງສັ້ນໆ ແລະອອກ.
--dump-config
ຖິ້ມຄ່າການຕັ້ງຄ່າເວລາການລວບລວມອອກ ແລະອອກ.
-f
-- ເບື້ອງໜ້າ
--ບໍ່ມີສ້ອມ
ເຮັດບໍ່ໄດ້ ສ້ອມເຂົ້າໄປໃນພື້ນຫລັງ.
-g ກຸ່ມ
--ກຸ່ມ ກຸ່ມ
ປ່ຽນກຸ່ມເປັນ "GROUP" ຫຼັງຈາກເລີ່ມຕົ້ນ. ຊື່ກຸ່ມ ຫຼື ID ກຸ່ມຕົວເລກສາມາດເປັນ
ໃຊ້ແລ້ວ.
ເຊີບເວີຕ້ອງການສິດອະນຸຍາດພຽງພໍເພື່ອສາມາດເຮັດສິ່ງນີ້ໄດ້. ປົກກະຕິນີ້ຈະ
ໝາຍເຖິງການເລີ່ມຕົ້ນເຊີບເວີຂຶ້ນເປັນຮາກ.
ເບິ່ງ -u.
-i IPADDR
--ip-addr IPADDR
--ipaddr IPADDR
ຟັງໃນການໂຕ້ຕອບທີ່ລະບຸ. ຄ່າເລີ່ມຕົ້ນແມ່ນເພື່ອຟັງໃນການໂຕ້ຕອບທັງຫມົດ. ເບິ່ງ
ຍັງ -p.
-P PIDFILE
--pid-file PIDFILE
--pidfile PIDFILE
ຂຽນ "PIDFILE" (ປະກອບດ້ວຍ ID ຂະບວນການຂອງເຄື່ອງແມ່ຂ່າຍ) ຫຼັງຈາກ nbdkit ກຽມພ້ອມ
ຍອມຮັບການເຊື່ອມຕໍ່.
ຖ້າໄຟລ໌ມີຢູ່ແລ້ວ, ມັນຈະຖືກຂຽນທັບ. nbdkit ບໍ່ ບໍ່ ລຶບໄຟລ໌ເມື່ອ
ມັນອອກ.
-p PORT
--ພອດ PORT
ປ່ຽນໝາຍເລກຜອດ TCP/IP ທີ່ nbdkit ໃຫ້ບໍລິການຄຳຮ້ອງຂໍ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 10809.
ເບິ່ງ -i.
-r
--ອ່ານຢ່າງດຽວ
--ອ່ານຢ່າງດຽວ
ການສົ່ງອອກຈະເປັນແບບອ່ານເທົ່ານັ້ນ. ຖ້າລູກຄ້າຂຽນ, ມັນຈະໄດ້ຮັບຂໍ້ຜິດພາດ.
ໃຫ້ສັງເກດວ່າບາງ plugins ໂດຍປົກກະຕິບໍ່ສະຫນັບສະຫນູນການຂຽນ. ດ້ວຍ plugins ເຫຼົ່ານັ້ນ -r
ທາງເລືອກແມ່ນໄດ້ເພີ່ມຂຶ້ນ implicitly.
ຟັງຊັນ Copy-on-write (ຫຼື "snapshot") ບໍ່ຮອງຮັບເຊີບເວີນີ້. ແນວໃດກໍ່ຕາມ
ຖ້າທ່ານກໍາລັງໃຊ້ qemu ເປັນລູກຄ້າ (ຫຼືທາງອ້ອມໂດຍຜ່ານ libguestfs) ຫຼັງຈາກນັ້ນມັນສະຫນັບສະຫນູນ
ພາບຖ່າຍ.
--ແລ່ນ CMD
ດໍາເນີນການ nbdkit ເປັນຂະບວນການຍ່ອຍຂອງ "CMD". ເມື່ອ "CMD" ອອກໄປ, nbdkit ຖືກຂ້າຕາຍ. ເບິ່ງ
"CAPTIVE NBDKIT" ຂ້າງລຸ່ມນີ້.
ທາງເລືອກນີ້ຫມາຍເຖິງ -- ເບື້ອງໜ້າ.
-s
--ໂສດ
--stdin
ຢ່າສ້ອມ. ຈັດການການເຊື່ອມຕໍ່ NBD ດຽວໃນ stdin/stdout. ຫຼັງຈາກ stdin ປິດ, ໄດ້
ເຊີບເວີອອກຈາກ.
ທ່ານສາມາດນໍາໃຊ້ທາງເລືອກນີ້ເພື່ອດໍາເນີນການ nbdkit ຈາກ inetd, systemd ຫຼື superservers ທີ່ຄ້າຍຄືກັນ; ຫຼື
ພຽງແຕ່ສໍາລັບການທົດສອບ; ຫຼືຖ້າທ່ານຕ້ອງການແລ່ນ nbdkit ໃນທາງທີ່ບໍ່ແມ່ນແບບດັ້ງເດີມ.
ທາງເລືອກນີ້ຫມາຍເຖິງ -- ເບື້ອງໜ້າ.
-U ກະເປົາ
--unix ກະເປົາ
-U -
--unix -
ຍອມຮັບການເຊື່ອມຕໍ່ຢູ່ໃນຊັອກເກັດໂດເມນ Unix "SOCKET" (ເຊິ່ງເປັນເສັ້ນທາງ).
nbdkit ສ້າງ socket ນີ້, ແຕ່ມັນອາດຈະມີການອະນຸຍາດທີ່ບໍ່ຖືກຕ້ອງ (ເຊັ່ນດຽວກັນ
ອະນຸຍາດ). ຖ້າມັນເປັນບັນຫາທີ່ຜູ້ໃຊ້ບໍ່ໄດ້ຮັບອະນຸຍາດບາງຄົນສາມາດເຊື່ອມຕໍ່ກັບສິ່ງນີ້
ເຕົ້າຮັບລະຫວ່າງເວລາທີ່ nbdkit ເລີ່ມຕົ້ນແລະຜູ້ໃຊ້ທີ່ໄດ້ຮັບອະນຸຍາດເຊື່ອມຕໍ່, ຫຼັງຈາກນັ້ນ
ເອົາເຕົ້າສຽບເຂົ້າໄປໃນໄດເລກະທໍລີທີ່ມີການອະນຸຍາດຈໍາກັດ.
nbdkit ເຮັດ ບໍ່ ລຶບໄຟລ໌ socket ເມື່ອມັນອອກ. ຜູ້ໂທຄວນລຶບ
ໄຟລ໌ socket ຫຼັງຈາກການນໍາໃຊ້ (ຖ້າຫາກວ່າທ່ານພະຍາຍາມທີ່ຈະເລີ່ມຕົ້ນ nbdkit ຂຶ້ນອີກເທື່ອຫນຶ່ງທີ່ທ່ານຈະໄດ້ຮັບ
"ທີ່ຢູ່ໃຊ້ແລ້ວ" ຜິດພາດ).
ຖ້າຊື່ socket ແມ່ນ - ຫຼັງຈາກນັ້ນ nbdkit ສ້າງ socket ສ່ວນຕົວທີ່ມີຊື່ແບບສຸ່ມ. ນີ້
ມີປະໂຫຍດກັບ "CAPTIVE NBDKIT".
-u ຜູ້ໃຊ້
-ຜູ້ໃຊ້ ຜູ້ໃຊ້
ປ່ຽນຜູ້ໃຊ້ເປັນ "USER" ຫຼັງຈາກເລີ່ມຕົ້ນ. ສາມາດນຳໃຊ້ຊື່ຜູ້ໃຊ້ ຫຼື ID ຕົວເລກໄດ້.
ເຊີບເວີຕ້ອງການສິດອະນຸຍາດພຽງພໍເພື່ອສາມາດເຮັດສິ່ງນີ້ໄດ້. ປົກກະຕິນີ້ຈະ
ໝາຍເຖິງການເລີ່ມຕົ້ນເຊີບເວີຂຶ້ນເປັນຮາກ.
ເບິ່ງ -g.
-v
-- verbose
ເປີດໃຊ້ຂໍ້ຄວາມ verbose.
ມັນເປັນຄວາມຄິດທີ່ດີທີ່ຈະໃຊ້ -f ເຊັ່ນດຽວກັນດັ່ງນັ້ນຂະບວນການບໍ່ fork ເຂົ້າໄປໃນພື້ນຖານ
(ແຕ່ບໍ່ຈໍາເປັນຕ້ອງ).
-V
- ການປ່ຽນແປງ
ພິມໝາຍເລກເວີຊັນຂອງ nbdkit ແລະອອກ.
ປລັກ CONFIGURATION
ຫຼັງຈາກການລະບຸຊື່ plugin ທີ່ທ່ານສາມາດເຮັດໄດ້ (ທາງເລືອກ, ມັນຂຶ້ນກັບ plugin ໄດ້) ໃຫ້
ການຕັ້ງຄ່າ plugin ໃນແຖວຄໍາສັ່ງໃນຮູບແບບຂອງ "key=value". ຍົກຕົວຢ່າງ:
nbdkit file file=disk.img
ເພື່ອບອກຕົວເລືອກທັງໝົດທີ່ສະຫນັບສະຫນຸນໂດຍ plugin, ເຮັດ:
nbdkit --help file
ຊະເລີຍ NBDKIT
ທ່ານສາມາດດໍາເນີນການ nbdkit ເປັນ "ຂະບວນການຈັບຕົວ", ໂດຍໃຊ້ --ແລ່ນ ທາງເລືອກ. ນີ້ຫມາຍຄວາມວ່າ nbdkit
ແລ່ນດົນເທົ່າທີ່ (ຕົວຢ່າງ) whoa(1) ຫຼື ປາແຂກ(1) ກໍາລັງແລ່ນ. ເມື່ອອອກເຫຼົ່ານັ້ນ, nbdkit
ຖືກຂ້າຕາຍ.
ບາງຕົວຢ່າງຄວນເຮັດໃຫ້ເລື່ອງນີ້ຈະແຈ້ງ.
ເພື່ອດໍາເນີນການ nbdkit captive ພາຍໃຕ້ qemu:
nbdkit file=disk.img --run 'qemu -drive file=$nbd,if=virtio'
ໃນເສັ້ນຄໍາສັ່ງ qemu, $nbd ຖືກທົດແທນໂດຍອັດຕະໂນມັດດ້ວຍເສັ້ນທາງ NBD ທີ່ຖືກຕ້ອງດັ່ງນັ້ນມັນ
ສາມາດເຊື່ອມຕໍ່ກັບ nbdkit. ເມື່ອ qemu ອອກໄປ, nbdkit ຖືກຂ້າແລະເຮັດຄວາມສະອາດໂດຍອັດຕະໂນມັດ.
ແລ່ນ nbdkit captive ພາຍໃຕ້ guestfish:
nbdkit file=disk.img --run 'guestfish --format=raw -a $nbd -i'
ເມື່ອປາ guestfish ອອກຈາກ, nbdkit ຖືກຂ້າຕາຍ.
ຕົວແປ shell ຕໍ່ໄປນີ້ແມ່ນມີຢູ່ໃນ --ແລ່ນ ການໂຕ້ຖຽງ:
$nbd
URL ທີ່ຫມາຍເຖິງພອດ nbdkit ຫຼືເຕົ້າຮັບ.
ໃຫ້ສັງເກດວ່າມີ magic ບາງອັນຢູ່ທີ່ນີ້, ເນື່ອງຈາກວ່າ qemu ແລະ guestfish URLs ມີຮູບແບບທີ່ແຕກຕ່າງກັນ,
ດັ່ງນັ້ນ nbdkit ພະຍາຍາມເດົາວ່າທ່ານກໍາລັງແລ່ນຢູ່. ຖ້າ magic ໃຊ້ບໍ່ໄດ້, ລອງໃຊ້
ຕົວແປຂ້າງລຸ່ມນີ້ແທນ.
$port
ຖ້າ ≠ "", ໝາຍເລກພອດທີ່ nbdkit ກຳລັງຟັງຢູ່.
$unixsocket
ຖ້າ ≠ "", ເຕົ້າຮັບໂດເມນ Unix ທີ່ nbdkit ກໍາລັງຟັງຢູ່.
--ແລ່ນ implies -- ເບື້ອງໜ້າ. ມັນເປັນໄປບໍ່ໄດ້, ແລະອາດຈະບໍ່ເປັນຄວາມປາຖະຫນາ, ທີ່ຈະມີ
nbdkit fork ເຂົ້າໄປໃນພື້ນຫລັງໃນເວລາທີ່ການນໍາໃຊ້ --ແລ່ນ.
ເຖິງແມ່ນວ່າໃນເວລາທີ່ແລ່ນ captive, nbdkit ຍັງຟັງຢູ່ໃນພອດ TCP/IP ປົກກະຕິ, ເວັ້ນເສຍແຕ່ວ່າທ່ານ
ລະບຸ -p/-U ທາງເລືອກ. ຖ້າທ່ານຕ້ອງການ nbdkit ເອກະຊົນຢ່າງແທ້ຈິງ, ຫຼັງຈາກນັ້ນທ່ານຄວນ
ສ້າງຊັອກເກັດ Unix ແບບສຸ່ມສ່ວນຕົວ, ແບບນີ້:
nbdkit -U - plugin [args] --run '...'
ລາຍເຊັນ
"nbdkit" ຕອບສະຫນອງຕໍ່ສັນຍານຕໍ່ໄປນີ້:
"SIGINT"
"SIGQUIT"
"ສັນຍາ"
ເຊີບເວີອອກຢ່າງສະອາດ.
"SIGPIPE"
ສັນຍານນີ້ຖືກລະເລີຍ.
ໃຊ້ nbdkit ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net