Nbd - вопрос про удалённые блочные устройства.

Тема в разделе "Флудилка", создана пользователем Igor68, 11 окт 2023.

  1. Igor68

    Igor68 Гуру

    Почти уверен, что отвечать никто не будет, но...
    ...есть устройства с Linux, но на них мало ОЗУ. По ряду причин HDD на них не поставить и SWAP потому не поставить. Тут наткнулся на это: https://translated.turbopages.org/p...s-mounted-filesystem-is-not-possible-in-linux
    Там решение проблемы, а именно SWAP на другой машине:

    СЕРВЕР
    Setup ramfs (if needed, if not just skip to nbd)
    Код (Text):
    sudo mkdir /mnt/ram
    sudo mount -t tmpfs -o size=16G tmpfs /mnt/ram
    Config file /etc/nbd-server/config:
    Код (Text):
    [generic]
      user = nbd
      group = nbd
    [swap]
      exportname = /mnt/ram/swap
      copyonwrite = false
      prerun = truncate -s 16G /mnt/ram/swap && mkswap /mnt/ram/swap
     
    Start NBD
    Код (Text):
    sudo systemctl start nbd

    КЛИЕНТ:
    Код (Text):
    sudo nbd-client 192.168.1.3 -name swap /dev/nbd0
    sudo swapon /dev/nbd0
    Клиенты есть всё установлено, но как сделать nbd-server на роутере? Ведь именно там общий сетевой диск USB-HDD. Что за роутер?! да вот он:
    Код (Text):
    opt/home/admin # uname -a
    Linux RT-AC1200 3.4.113 #1 Fri Jan 4 01:37:08 PST 2019 mips GNU/Linux
    /opt/home/admin # df -h
    Filesystem                Size      Used Available Use% Mounted on
    rootfs                    5.9M      5.9M         0 100% /
    /dev/root                 5.9M      5.9M         0 100% /
    tmpfs                     8.0K         0      8.0K   0% /dev
    tmpfs                     2.0M    172.0K      1.8M   8% /etc
    tmpfs                     1.0M         0      1.0M   0% /home
    tmpfs                     8.0K         0      8.0K   0% /media
    tmpfs                     8.0K         0      8.0K   0% /mnt
    tmpfs                    24.0M     72.0K     23.9M   0% /tmp
    tmpfs                     4.0M    188.0K      3.8M   5% /var
    /dev/sda1               457.4G    348.8G    108.6G  76% /media/AiDisk_a1
    /dev/sda2               466.3G    320.9G    121.8G  72% /media/AiDisk_a2
    /dev/sda2               466.3G    320.9G    121.8G  72% /opt
    /opt/home/admin # free -h
                 total       used       free     shared    buffers     cached
    Mem:         61904      56040       5864          0      15724      17852
    -/+ buffers/cache:      22464      39440
    Swap:        67580         32      67548
     
    На него хочу установить nbd-server. Жаль, что как в Debian нельзя.
     
    ZAZ-965 и ИгорьК нравится это.
  2. ZAZ-965

    ZAZ-965 Гуру

    @Igor68, как я понял роутер Asus RT-AC1200 (какой hardware version?) и в версии 1 он поддерживает OpenWrt, в котором есть пакет nbd-server. Или поискать расширенную замену штатной прошивки Asuswrt-Merlin
     
    Igor68 нравится это.
  3. Igor68

    Igor68 Гуру

    Доброго времени суток!
    К сожалению могу сказать так: как то давно искал прошивку... как говориться ПАДАВАН, по рекомендациям. Роутера два, в один из них входит интернет, другой его получает по 5ГГц уже у меня. Роутеры имеют одинаковую прошивку(перепрошил),т.к. родная-заводская заставляла вручную перезагружать их два раза в сутки - зависали.
    по поводу opkg: есть только opkg.sh. С ipkg так же есть только ipkg.sh. Вот проба:
    Код (Text):
    /opt/home/admin # ipkg.sh update
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/Packages ...
    wget: bad address 'ipkg.nslu2-linux.org'
    ipkg_download: ERROR: Failed to retrieve http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/Packages, returning
    ipkg_update: Error downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/Packages to /opt/lib/ipkg/lists/optware
    /opt/home/admin #
     
    К обоим роутерам подключены USB-HDD - поэтому всё вкусно! Доступ как я говорил к двум роутерам SSH,HTTP(S),NFS,SAMBA,FTP. Всё очень вкусно всё! Решил вот ещё NBD добавить, потому как SWAP поверх NFS я так ничего и не понял. На устройства уже установил
    nbd-client и появились уже:
    Код (Text):
    www-data@rpi1plus ~ $ ls /dev -l | grep nbd
    brw-rw---T 1 root disk     43,   0 Oct 11 17:36 nbd0
    brw-rw---T 1 root disk     43,  16 Oct 11 17:36 nbd1
    brw-rw---T 1 root disk     43, 160 Oct 11 17:36 nbd10
    brw-rw---T 1 root disk     43, 176 Oct 11 17:36 nbd11
    brw-rw---T 1 root disk     43, 192 Oct 11 17:36 nbd12
    brw-rw---T 1 root disk     43, 208 Oct 11 17:36 nbd13
    brw-rw---T 1 root disk     43, 224 Oct 11 17:36 nbd14
    brw-rw---T 1 root disk     43, 240 Oct 11 17:36 nbd15
    brw-rw---T 1 root disk     43,  32 Oct 11 17:36 nbd2
    brw-rw---T 1 root disk     43,  48 Oct 11 17:36 nbd3
    brw-rw---T 1 root disk     43,  64 Oct 11 17:36 nbd4
    brw-rw---T 1 root disk     43,  80 Oct 11 17:36 nbd5
    brw-rw---T 1 root disk     43,  96 Oct 11 17:36 nbd6
    brw-rw---T 1 root disk     43, 112 Oct 11 17:36 nbd7
    brw-rw---T 1 root disk     43, 128 Oct 11 17:36 nbd8
    brw-rw---T 1 root disk     43, 144 Oct 11 17:36 nbd9
     
    Нужен только сервер.
    Кстати побывал браузером тут:http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/Packages и тут: http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable
    В первом случае файл(вот отрывок):
    Код (Text):
    Package: abook
    Version: 0.5.6-2
    Depends: ncurses, readline
    Section: misc
    Architecture: mipsel
    Maintainer: Brian Zhou <bzhou@users.sf.net>
    MD5Sum: 3d3738c7fe2d4b048e5176e1abc07df0
    Size: 41546
    Filename: abook_0.5.6-2_mipsel.ipk
    Source: http://downloads.sourceforge.net/sourceforge/abook/abook-0.5.6.tar.gz
    Description: Abook is a text-based addressbook program designed to use with mutt mail client.
     
    Во втором случае список пакетов ****_mipsel.ipk - можно и скачать любой из них вручную, но искомого nbd-server****_mipsel.ipk нет в наличии. Кстати наткнулся на mc_4.7.5.5-1_mipsel.ipk... думаю может попробовать поставить на роутер, его там нет, типа потренироваться. А то может прошивка в этом смысле швах. Кстати /opt исходя из этого:
    Код (Text):
    /opt/home/admin # df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    rootfs                    6016      6016         0 100% /
    /dev/root                 6016      6016         0 100% /
    tmpfs                        8         0         8   0% /dev
    tmpfs                     2048       172      1876   8% /etc
    tmpfs                     1024         0      1024   0% /home
    tmpfs                        8         0         8   0% /media
    tmpfs                        8         0         8   0% /mnt
    tmpfs                    24576       108     24468   0% /tmp
    tmpfs                     4096       236      3860   6% /var
    /dev/sda1            479628496 365735584 113892912  76% /media/AiDisk_a1
    /dev/sda2            489001168 336465920 127695364  72% /media/AiDisk_a2
    /dev/sda2            489001168 336465920 127695364  72% /opt
     
    на HDD
     
  4. Igor68

    Igor68 Гуру

    Кстати может собрать nbd-server в qemu? Да что я говорю?! Глупость! По поводу железной версии... прямо сейчас затрудняюсь сказать. По поводу OpenWrt (он у меня на dir-620 сейчас стоит) я от него без ума - шикарная система(я не про роутер). К сожалению dir-620 занят - он и подопытный, и USB питает малину первую(она приклеена к роутеру), о вся моя сеть не на RT-AC1200, а на dir-620... все лампочки и железки на нём, а вот своим WAN он подключается к моему RT-AC1200... там и диски и другая сеть - в прямом смысле. На dir-620 IP=192.168.7.0/24, а вот на RT-AC1200 IP=192.168.5.0/24. Наверное можно и на первую малину поставить USB-HDD, но они вместе с роутером dir-620 околеют.
     
  5. Igor68

    Igor68 Гуру

    Вот в поисковике, ну прям в Яндексе: "реализация SWAP поверх NFS".
    Ответ прямо на странице...
    И вот результат:
    Код (Text):
    root@rpi1plus:/home/httpd# free
                 total       used       free     shared    buffers     cached
    Mem:        380416     366396      14020          0      68836     189232
    -/+ buffers/cache:     108328     272088
    Swap:       102396          0     102396
    root@rpi1plus:/home/httpd# free -h
                 total       used       free     shared    buffers     cached
    Mem:          371M       354M        16M         0B        66M       181M
    -/+ buffers/cache:       105M       265M
    Swap:          99M         0B        99M
    root@rpi1plus:/home/httpd#
    А я и не смотрел на такое... идиот!
    Сейчас испытываю такую полезность
     
    Последнее редактирование: 13 окт 2023
  6. Igor68

    Igor68 Гуру

    Память SWAP есть, но система даже не пытается её применять:
    Код (Text):
    www-data@rpi1plus ~ $ free -h
                 total       used       free     shared    buffers     cached
    Mem:          371M       358M        13M         0B        20M       240M
    -/+ buffers/cache:        96M       275M
    Swap:         127M         0B       127M
    К сожалению...
     
  7. Igor68

    Igor68 Гуру

    Может системе надо сказать, что она может применять SWAP по своему усмотрению и с ограничением по времени доступа? Но как?
    PS: Простите! Уточняю, что это касается тех, КТО ИСПОЛЬЗУЕТ МАЛИНУ 1, а еще тех, кто успел снять каску и вылез из танка(прикол 80-х). Если что, извините!
    Если Вы тот, кто курит бамбук,то не обращайте внимания!
     
    Последнее редактирование: 14 окт 2023
  8. Igor68

    Igor68 Гуру

    Сейчас испытываю на другом устройстве - AT91SAM9260 и для этого пересобрал ядро (в файле .config установил опцию CONFIG_SWAP=y). А то было:
    Код (Text):
    # swapon -a /home/swap
    swapon: /mnt/nfs/public/at91sam9260ek/swap: Function not implemented
    зато теперь:
    Код (Text):
    # free
                  total        used        free      shared  buff/cache   available
    Mem:          59136       18420       13384         412       27332       37204
    Swap:         65532           0       65532
     
    Если кто обратил внимание путь к swap: /mnt/nfs/public/at91sam9260ek/swap
    то есть файл swap в NFS.
    Вот всё, что примонтировано:
    Код (Text):
    # mount
    /dev/root on / type ext2 (rw,relatime,block_validity,barrier,user_xattr)
    devtmpfs on /dev type devtmpfs (rw,relatime,size=29464k,nr_inodes=7366,mode=755)
    proc on /proc type proc (rw,relatime)
    devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=666)
    tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)
    tmpfs on /tmp type tmpfs (rw,relatime)
    tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
    sysfs on /sys type sysfs (rw,relatime)
    192.168.5.2:/media/AiDisk_a2 on /mnt/nfs type nfs (rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,soft,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.5.2,mountvers=3,mountproto=tcp,local_lock=all,addr=192.168.5.2)
     
    Вот только как испытать? На плате ничего такого нет, что бы занять место в ОЗУ. Блин даже компилятор GCC собрать не смог. Блин, зато всяких
    Код (Text):
    $ python
    python     python2    python2.7
    $ lua
    lua   luac
    как конь на..б плюнуть некуда.
     
  9. ZAZ-965

    ZAZ-965 Гуру

    @Igor68, посмотрел советы в интернет - народ использует петлевое устройство (loop device) для того, чтобы из примонтированного файла сделать блочное устройство. Например,
    https://forums.raspberrypi.com/viewtopic.php?t=7720
    https://superuser.com/questions/497...s-mounted-filesystem-is-not-possible-in-linux
    Попробовал повторить эти советы на Debian12 с OpenWrt в VirualBox - не смог настроить NFSv4, не пускает (permission denied).
     
    Igor68 нравится это.
  10. Igor68

    Igor68 Гуру

    Именно так (/dev/loopXX) и испытывал, и без. Много вариантов испытал. И permission denied случалось - применял и dd if=... of=... bs=XX count=XX и mkswap не запомнил (если записывать, то времени на опыты не останется). В результате есть, что есть. Вопрос теперь в том, что бы система ЗАХОТЕЛА и начала ИСПОЛЬЗОВАТЬ. Кстати есть устройство с Linux, где нет поддержки SWAP.

    PS: А за ссылки СПАСИБО! Читаю, хоть и много похожего читал.
     
  11. Igor68

    Igor68 Гуру

    Код (Text):
    www-data@rpi1plus ~ $ cat /proc/swaps;free
    Filename                Type        Size    Used    Priority
    /dev/loop0                              partition    65532    0    -1
                 total       used       free     shared    buffers     cached
    Mem:        380416     346092      34324          0      48148     190004
    -/+ buffers/cache:     107940     272476
    Swap:        65532          0      65532
    www-data@rpi1plus ~ $ cat /proc/swaps;free -h
    Filename                Type        Size    Used    Priority
    /dev/loop0                              partition    65532    0    -1
                 total       used       free     shared    buffers     cached
    Mem:          371M       338M        33M         0B        47M       185M
    -/+ buffers/cache:       105M       266M
    Swap:          63M         0B        63M
    www-data@rpi1plus ~ $
     
    Пока как ни крутил, система не желает применять дополнительную память по NFS, хоть и имеет таковую. Испытаю позже другое устройство...
    PS: Может надо только NBD, а то я NFS, да NFS? Только вот беда, NBD-сервер я так и не смог поставить на роутер.
     
    Последнее редактирование: 20 окт 2023