GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa memasang perangkat blok dari satu komputer ke komputer lain melalui jaringan sebagai perangkat blok?

Saya pikir Anda mungkin dapat mencapai apa yang Anda inginkan menggunakan perangkat blok jaringan (NBD). Melihat halaman wikipedia pada subjek disebutkan ada alat yang disebut nbd . Ini terdiri dari komponen klien dan server.

Contoh

Dalam skenario ini saya menyiapkan CDROM di laptop (server) Fedora 19 saya dan membagikannya ke sistem Ubuntu 12.10 (klien).

memasang
$ 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
berbagi CD

Sekarang kembali ke server (Fedodra 19) saya melakukan hal serupa menggunakan manajer paket YUM. Setelah selesai, saya memasukkan CD dan menjalankan perintah ini untuk membagikannya sebagai perangkat blok:

$ 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.
$

Pemeriksaan cepat untuk melihat apakah sedang berjalan:

$ 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
Memasang CD

Sekarang kembali ke klien Ubuntu kita perlu terhubung ke nbd-server menggunakan nbd-client seperti itu. CATATAN: nama server nbd adalah telur hijau dalam contoh ini.

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

(Pada beberapa sistem - misalnya Fedora - kita harus modprobe nbd pertama.)

Kami dapat mengonfirmasi bahwa sekarang ada perangkat blok di sistem Ubuntu menggunakan 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 

Dan sekarang kami memasangnya:

$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
berhasil?

Ketegangan membunuh saya, dan kami telah lepas landas:

$ sudo ls /mnt/
EFI  GPL  isolinux  LiveOS

Ada konten LiveCD CentOS yang saya pasang di laptop Fedora 19 dan dapat dipasang sebagai perangkat blok jaringan di Ubuntu.


Satu alternatif untuk nbd (jika Anda tertarik) menggunakan iSCSI. tgtd dapat dikonfigurasi untuk memiliki /dev perangkat sebagai penyimpanan pendukungnya untuk iSCSI IQN tertentu.

Jika Anda menggunakan sistem RHEL maka Anda hanya perlu menginstal scsi-target-utils lalu konfigurasikan/mulai tgtd pada sistem sumber. Konfigurasi tgtd dapat terlibat tetapi Red Hat memberikan banyak contoh berbeda untuk berbagai skenario.

Misalnya:

<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>

Untuk memulainya di Fedora/RHEL:

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

Anda akan menginstal iscsi-initiator-utils pada sistem klien dan gunakan iscsiadm untuk mengirim target lalu "masuk ke" target yang disebutkan. Misalnya:

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

LUN iSCSI kemudian akan hadir ke sistem sebagai perangkat blok biasa. Di RHEL, Anda dapat memeriksa transportasi yang datang dari perangkat tertentu, Anda cukup melakukan ls -l /dev/disk/by-path | grep iscsi untuk melihat penyimpanan apa yang datang melalui iSCSI. Jalur tersebut juga akan mencantumkan IQN dari target yang Anda masuki di atas.

Ketika perangkat iscsi tidak diperlukan lagi, seseorang dapat menghapusnya melalui:

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

Anda jelas lebih suka solusi SAN. Selain iSCSI dan NBD yang telah disebutkan, Anda juga memiliki pendekatan AoE (ATA over ethernet).

Ini sangat mudah dilakukan:

Di sisi penyajian, Anda perlu

modprobe aoe
vbladed 0 0 eth0 /dev/sdc

Di sisi klien

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

Perangkat Anda dalam keadaan

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

Dimana e0.0 adalah /dev/sdc Anda dan e0.0.p1 adalah /dev/sdc1

dmesg di server:

[221384.454447] aoe: AoE v85 initialised.

dmesg keluaran pada klien:

[ 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

Cukup mudah.

Catatan Tambahan

  • vbladed adalah bagian dari paket vblade di Fedora &Ubuntu, kemungkinan juga sama di distro lain.
  • aoe-discover &aoe-stat adalah bagian dari paket aoetools di Fedora &Ubuntu juga.
  • Perangkat muncul di fdisk sebagai perangkat blok, misalnya, /dev/etherd/e0.0 .
  • Versi vblade yang tersedia di repositori F19 dan F20 cukup kuno, ini versi 14. Halaman proyek ATAoE memiliki versi 21 yang tersedia. Ada RPM terbaru yang tersedia untuk Fedora 19 x86_64 di sini.

Linux
  1. Bagaimana Cara Menyalin Pengaturan Dari Satu Mesin Ke Mesin Lainnya?

  2. Cara menyalin tabel dari satu database mysql ke database mysql lainnya

  3. Bagaimana saya bisa mengeksekusi kode PHP dari baris perintah?

  1. Bagaimana cara mengganti semua isi dari satu folder dengan yang lain

  2. Bagaimana cara Mengontrol Urutan Antarmuka Jaringan?

  3. Bagaimana cara menghapus perangkat cache dari bcache?

  1. Bagaimana Anda Mencerminkan Stdout Dari Satu Terminal Ke Terminal Lainnya?

  2. Bagaimana Cara Memindahkan File Dari Satu Akun Pengguna Ke Akun Pengguna Lain Di Komputer Yang Sama?

  3. Bagaimana cara melakukan penerusan port dari satu ip ke ip lain di jaringan yang sama?