ฉันจะติดตั้งอุปกรณ์บล็อกจากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งผ่านทางเครือข่ายเป็นอุปกรณ์บล็อกได้อย่างไร


40

เป็นไปได้หรือไม่ที่จะส่งออกอุปกรณ์บล็อกเช่น DVD หรือ CDROM และทำให้สามารถติดตั้งบนคอมพิวเตอร์เครื่องอื่นเป็นอุปกรณ์บล็อกได้

หมายเหตุ:ฉันไม่สนใจที่จะทำสิ่งนี้โดยใช้ NFS หรือ Samba จริง ๆ แล้วฉันต้องการให้ออปติคัลไดรฟ์ปรากฏเป็นออปติคัลไดรฟ์บนคอมพิวเตอร์ระยะไกล

คำตอบ:


33

ฉันคิดว่าคุณอาจจะสามารถบรรลุสิ่งที่คุณต้องการโดยใช้อุปกรณ์บล็อคเครือข่าย (NBD) มองไปที่หน้าวิกิพีเดียในเรื่องที่nbdมีการกล่าวถึงเครื่องมือที่เรียกว่า มันประกอบด้วยลูกค้าและส่วนประกอบเซิร์ฟเวอร์

ตัวอย่าง

ในสถานการณ์นี้ฉันกำลังตั้งค่า CDROM บนแล็ปท็อป Fedora 19 ของฉัน (เซิร์ฟเวอร์) และฉันกำลังแบ่งปันกับระบบ Ubuntu 12.10 (ลูกค้า)

การติดตั้ง
$ apt-cache search ^nbd-
nbd-client - Network Block Device protocol - client
nbd-server - Network Block Device protocol - server

$ sudo apt-get install nbd-server nbd-client
แบ่งปันซีดี

ตอนนี้กลับมาที่เซิร์ฟเวอร์ (Fedodra 19) ฉันทำสิ่งที่คล้ายกันโดยใช้ตัวจัดการแพคเกจของ YUM เมื่อเสร็จแล้วฉันก็เปิด CD และเรียกใช้คำสั่งนี้เพื่อแชร์เป็นอุปกรณ์บล็อก:

$ sudo nbd-server 2000 /dev/sr0

** (process:29516): WARNING **: Specifying an export on the command line is deprecated.

** (process:29516): WARNING **: Please use a configuration file instead.
$

ตรวจสอบอย่างรวดเร็วเพื่อดูว่ามันกำลังทำงานอยู่:

$ ps -eaf | grep nbd
root     29517     1  0 12:02 ?        00:00:00 nbd-server 2000 /dev/sr0
root     29519 29071  0 12:02 pts/6    00:00:00 grep --color=auto nbd
ติดตั้งซีดี

ตอนนี้กลับไปที่ไคลเอนต์ Ubuntu เราต้องเชื่อมต่อกับการnbd-serverใช้nbd-clientเช่นนั้น หมายเหตุ:ชื่อของ nbd-server คือ greeneggs ในตัวอย่างนี้

$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes

(ในบางระบบ - เช่น Fedora - ต้องmodprobe nbdเริ่มก่อน)

เราสามารถยืนยันได้ว่าขณะนี้มีอุปกรณ์บล็อกในระบบ Ubuntu โดยใช้lsblk:

$ sudo lsblk -l
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                    8:0    0 465.8G  0 disk 
sda1                   8:1    0   243M  0 part /boot
sda2                   8:2    0     1K  0 part 
sda5                   8:5    0 465.5G  0 part 
ubuntu-root (dm-0)   252:0    0 461.7G  0 lvm  /
ubuntu-swap_1 (dm-1) 252:1    0   3.8G  0 lvm  [SWAP]
sr0                   11:0    1 654.8M  0 rom  
nbd0                  43:0    0   643M  1 disk 
nbd0p1                43:1    0   643M  1 part 

และตอนนี้เราติดมัน:

$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
มันทำงานหรือไม่

ความสงสัยกำลังฆ่าฉันและเราได้ยกตัว

$ sudo ls /mnt/
EFI  GPL  isolinux  LiveOS

มีเนื้อหาของ LiveCD ของ CentOS ที่ฉันติดตั้งในแล็ปท็อป Fedora 19 และสามารถติดตั้งเป็นอุปกรณ์บล็อกของเครือข่ายบน Ubuntu


ฉันได้รับสิ่งนี้: "คำเตือนการระบุการส่งออกบนบรรทัดคำสั่งถูกคัดค้านโปรดใช้ไฟล์การกำหนดค่าแทน" รุ่น: 3.3
guettli

@guettli - ขอบคุณสำหรับคำติชม สิ่งนี้เป็น distro
slm

@sim openSUSE 13.1
guettli

หมายเหตุ: greeneggsเป็นชื่อโฮสต์ของเซิร์ฟเวอร์
devius

1
โปรดทราบว่าโปรโตคอลแบบเก่า (เช่นใช้พอร์ตหนึ่งสำหรับแต่ละอุปกรณ์) คือการทำเครื่องหมายว่าเลิกสำหรับหลายรุ่นและ ถูกทิ้งใน NBD 3.10
maxschlepzig

20

ทางเลือกหนึ่งสำหรับnbd(ถ้าคุณสนใจ) กำลังใช้ iSCSI tgtdสามารถกำหนดค่าให้มี/devอุปกรณ์เป็นที่เก็บข้อมูลสำรองสำหรับ iSCSI IQN เฉพาะ

หากคุณใช้ระบบ RHEL คุณเพียงแค่ต้องติดตั้งscsi-target-utilsแล้วกำหนดค่า / เริ่มต้นtgtdบนระบบต้นทาง การกำหนดค่าของtgtdสามารถมีส่วนร่วม แต่ Red Hat ให้ตัวอย่างที่แตกต่างมากมายสำหรับสถานการณ์ต่างๆ

ตัวอย่างเช่น:

<target iqn.2008-09.com.example:server.target4>
    direct-store /dev/sdb      # Becomes LUN 1
    direct-store /dev/sdc      # Becomes LUN 2
    direct-store /dev/sdd      # Becomes LUN 3
    write-cache off
    vendor_id MyCompany Inc.
</target>

ในการเริ่มต้นกับ Fedora / RHEL:

# systemctl start tgtd.service
# firewall-cmd --add-service iscsi-target

คุณจะติดตั้งiscsi-initiator-utilsบนระบบไคลเอนต์และใช้iscsiadmเพื่อส่งเป้าหมายจากนั้นไปที่ "เข้าสู่" เป้าหมายที่ระบุ ตัวอย่างเช่น:

# iscsiadm -m discovery -t sendtargets -p <remoteHost>
# iscsiadm -m node -T <Complete Target IQN> -l -p <remoteHost>

จากนั้น iSCSI LUN จะนำเสนอระบบเป็นอุปกรณ์บล็อกปกติ บน RHEL คุณสามารถตรวจสอบการขนส่งของอุปกรณ์เฉพาะที่กำลังจะมาถึงคุณสามารถทำได้ls -l /dev/disk/by-path | grep iscsiเพื่อดูว่าหน่วยเก็บข้อมูลใดที่กำลังจะมาถึง iSCSI เส้นทางจะแสดงรายการ IQN ของเป้าหมายที่คุณลงชื่อเข้าใช้ด้านบน

เมื่อไม่จำเป็นต้องใช้อุปกรณ์ iscsi อีกต่อไปก็สามารถนำออกได้ผ่าน:

# iscsiadm -m node -T <Complete Target IQN> -u -p <remoteHost>

2
ถ้าคุณต้องการคุณสามารถเพิ่ม A ของคุณลงใน AU Q นี้ได้เช่นกันมันเป็นสิ่งที่กระตุ้นให้ฉันเขียนสิ่งนี้ขึ้น: askubuntu.com/questions/433231/…
slm

ฉันต้องการ แต่ฉันไม่มีระบบ Ubuntu ที่มีประโยชน์จริง ๆ เพื่อให้แน่ใจว่าชื่อแพคเกจเหมือนกันหรือถ้าตัวอย่างการกำหนดค่าที่ฉันอ้างอิงเป็นอัปสตรีมหรือมีบางอย่างที่ Red Hat ทำ แม้ว่าการกำหนดค่าตัวเองควรจะเหมือนกัน
Bratchley

1
Joel คุณเก่งที่สุด ... ไม่มีระบบ Ubuntu 8-)
slm

1
จริง ๆ แล้วติดตั้งง่ายกว่า NBD ปัญหาของ NBD ปัจจุบันคือตัวอย่าง / เอกสารส่วนใหญ่ที่คุณพบผ่าน Google ใช้การกำหนดค่าแบบเก่าซึ่งเวอร์ชันปัจจุบันลบการสนับสนุนออกไป นอกจากนี้รุ่น <3.10 อาจจะมีข้อผิดพลาดอ่านอย่างเดียว
maxschlepzig

9

เห็นได้ชัดว่าคุณชอบโซลูชัน SAN นอกเหนือจาก iSCSI และ NBD ที่กล่าวถึงแล้วคุณยังมีวิธี AoE (ATA ผ่านอีเธอร์เน็ต)

ง่ายมากที่จะทำ:

ในด้านการให้บริการที่คุณต้องการ

modprobe aoe
vbladed 0 0 eth0 /dev/sdc

ในฝั่งไคลเอ็นต์

modprobe aoe
aoe-discover
aoe-stat
e0.0      1000.204GB       eth0 1024  up

อุปกรณ์ของคุณอยู่ใน

ls -l /dev/etherd/
c-w--w----  1 root disk 152, 3 Mar 12 22:47 discover
brw-rw----  1 root disk 152, 0 Mar 12 22:47 e0.0
brw-rw----  1 root disk 152, 1 Mar 12 22:47 e0.0p1
cr--r-----  1 root disk 152, 2 Mar 12 22:47 err
c-w--w----  1 root disk 152, 6 Mar 12 22:47 flush
c-w--w----  1 root disk 152, 4 Mar 12 22:47 interfaces
c-w--w----  1 root disk 152, 5 Mar 12 22:47 revalidate

e0.0ของคุณอยู่ที่ไหน/dev/sdcและe0.0.p1เป็น/dev/sdc1

dmesg บนเซิร์ฟเวอร์:

[221384.454447] aoe: AoE v85 initialised.

dmesg เอาท์พุทกับลูกค้า:

[ 1923.225832] aoe: AoE v85 initialised.
[ 1923.226379] aoe: e0.0: setting 1024 byte data frames
[ 1923.226910] aoe: 38607725d8b1 e0.0 v4014 has 1953525168 sectors
[ 1923.653820]  etherd/e0.0: p1

ค่อนข้างง่าย

หมายเหตุเพิ่มเติม

  • vbladedเป็นส่วนหนึ่งของแพ็คเกจvbladeบน Fedora & Ubuntu ซึ่งมีแนวโน้มเหมือนกันใน distros อื่นเช่นกัน
  • aoe-discover& aoe-statเป็นส่วนหนึ่งของแพ็คเกจaoetoolsบน Fedora & Ubuntu ด้วย
  • อุปกรณ์การแสดงขึ้นมาในขณะที่อุปกรณ์ป้องกันตัวอย่างเช่นfdisk/dev/etherd/e0.0
  • รุ่นของvbladeที่มีอยู่ในที่เก็บ F19 และ F20 ค่อนข้างเก่า แต่เป็นรุ่นที่ 14 หน้าโครงการ ATAoE มีรุ่น 21 มีความเป็นRPM การอัปเดตพร้อมใช้งานสำหรับ Fedora 19 x86_64 ที่นี่

พยายามทำสิ่งนี้กับ Fedora และ Ubuntu มันไม่ทำงาน
slm

ฉันมักจะตรวจสอบทุกอย่างก่อนโพสต์ ถาม: มีการโหลด aoe หรือไม่? คุณให้ข้อโต้แย้งที่เหมาะสมหรือไม่? ในการรับ: aoe พบฝ่ายตรงข้ามหรือไม่? พูดว่าอะไรdmesg?

ฉันรู้ว่าคุณทำฉันไม่ได้หมายความว่ามันผิดเท่านั้นที่อาจมีขั้นตอนเพิ่มเติม 8-)
slm

แต่ไม่มีขั้นตอนพิเศษนี่เป็นเรื่องง่าย

1
ROTFL และคุณนับสมาร์ทโฟนด้วยหรือไม่

1

แม้ว่าวิธีนี้จะใช้งานได้ แต่มันก็เป็นเพียงวิธีการแสดง TMWTDI นั้น

สำหรับการตั้งค่านี้เราจำเป็นต้องมีระบบที่ได้รับแรงบันดาลใจจากยูนิกซ์ในการโฮสต์อุปกรณ์บล็อกและระบบที่มีอุปกรณ์บล็อกย้อนกลับเพื่อให้ระบบสามารถดูได้ Linux จะทำงานได้ทั้งคู่

ต่อไปเราต้องการระบบไฟล์เครือข่ายที่เป็นใบ้ (ต้องไม่เพิ่มประสิทธิภาพการจัดเก็บข้อมูล) เช่น samba หรือ webdav โดยเฉพาะ NFS และ AFS จะไม่ทำงาน

วางอุปกรณ์บล็อกในโฟลเดอร์ที่ส่งออก ( man mknodจะช่วยให้) ปิดการใช้งานการตรวจสอบอุปกรณ์บล็อกถ้ามี เมานต์ระบบไฟล์ที่เอ็กซ์พอร์ตบนคอมพิวเตอร์ไคลเอนต์สร้างอุปกรณ์ลูปโดยใช้ไฟล์ที่นำเข้าเนื่องจากเป็นที่เก็บข้อมูลสำรองและเมานต์ตามปกติ ( losetupหรือmount -o loop)

มันทำงานอย่างไรและทำไมและทำไมประสิทธิภาพถึงแย่ลง: หนึ่งในแนวคิดหลักที่อยู่เบื้องหลังยูนิกซ์คือทุกอย่างเป็นไฟล์ดังนั้นอุปกรณ์จึงเป็นไฟล์เท่านั้นที่มีความพิเศษเล็กน้อย (นั่นคือเหตุผลที่พวกเขาเรียกไฟล์พิเศษ) มีไฟล์พิเศษหลายประเภทที่ mknod สามารถผลิตได้ แต่เราจะดูที่อุปกรณ์บล็อกเท่านั้น อุปกรณ์บล็อกมีอยู่ในระบบไฟล์เช่นไฟล์อื่น ๆ และเช่นเดียวกับไฟล์อื่น ๆ ที่พวกเขามีเจ้าของสิทธิ์ inodes และชื่อ; แต่มีความแตกต่างสองประการ: พวกเขาไม่เก็บข้อมูลไว้ในระบบไฟล์และมีความสามารถพิเศษเพื่อให้สามารถเมานต์ได้ หากเซิร์ฟเวอร์ไฟล์โง่พอที่จะไม่ใส่ใจกับความแตกต่างเหล่านี้คุณสามารถเพิกเฉยและส่งออกเป็นไฟล์ปกติได้ ถัดไปอุปกรณ์วนรอบจะใช้ไฟล์ธรรมดา (ภายในหรือระยะไกล) และเพิ่มคุณสมบัติและความสามารถพิเศษเพื่อให้คุณสามารถเมานต์ไฟล์ปกติราวกับว่าพวกเขาเป็นอุปกรณ์บล็อก ข้อเสียเปรียบใหญ่คือประสิทธิภาพ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.