LINUX.ORG.RU

Сообщения ls-h

 

LUKS2 на ноутбуке. Медленно...

Привет всем!

Есть LUKS контейнер поверх LVM, который поверх SSD NVMe.

Зарядка подключена.
Простое последовательное чтение из контейнера после открытия. Это не самая плохая скорость, бывает медленнее:

# dd if=/dev/mapper/luksdec of=/dev/null bs=1M count=4096 status=progress iflag=direct
3570401280 bytes (3,6 GB, 3,3 GiB) copied, 3 s, 1,2 GB/s
4096+0 records in
4096+0 records out
4294967296 bytes (4,3 GB, 4,0 GiB) copied, 3,58959 s, 1,2 GB/s

Логический том под ним:
# dd if=/dev/mapper/990provg-luksenc of=/dev/null bs=1M count=4096 status=progress iflag=direct
3235905536 bytes (3,2 GB, 3,0 GiB) copied, 1 s, 3,2 GB/s
4096+0 records in
4096+0 records out
4294967296 bytes (4,3 GB, 4,0 GiB) copied, 1,32352 s, 3,2 GB/s

Просто сам SSD:
# dd if=/dev/disk/by-id/nvme-Samsung_SSD_990_PRO_2TB_S6Z2NJ0TB46146F of=/dev/null bs=1M count=4096 status=progress iflag=direct
3245342720 bytes (3,2 GB, 3,0 GiB) copied, 1 s, 3,2 GB/s
4096+0 records in
4096+0 records out
4294967296 bytes (4,3 GB, 4,0 GiB) copied, 1,31947 s, 3,3 GB/s

Тестирование:
# cryptsetup benchmark --cipher aes-xts 
# Tests are approximate using memory only (no storage IO).
# Algorithm |       Key |      Encryption |      Decryption
    aes-xts        256b      4481,7 MiB/s      4473,6 MiB/s


Выдёргиваю зарядку.
Контейнер:
# dd if=/dev/mapper/luksdec of=/dev/null bs=1M count=4096 status=progress iflag=direct
4126146560 bytes (4,1 GB, 3,8 GiB) copied, 10 s, 413 MB/s
4096+0 records in
4096+0 records out
4294967296 bytes (4,3 GB, 4,0 GiB) copied, 10,4032 s, 413 MB/s

Да, понятно, что процессор снижает частоту без провода. Но уж что-то показания совсем жуть. Опять тестирование:
# cryptsetup benchmark --cipher aes-xts 
# Tests are approximate using memory only (no storage IO).
# Algorithm |       Key |      Encryption |      Decryption
    aes-xts        256b      1172,1 MiB/s      1175,1 MiB/s

Вот такая ерунда. Всё это происходит на:
# lscpu 
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         48 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  16
  On-line CPU(s) list:   0-15
Vendor ID:               AuthenticAMD
  Model name:            AMD Ryzen 7 5800H with Radeon Graphics
    CPU family:          25
    Model:               80
    Thread(s) per core:  2
    Core(s) per socket:  8
    Socket(s):           1
    Stepping:            0
    Frequency boost:     enabled
    CPU max MHz:         4462,5000
    CPU min MHz:         1200,0000
    BogoMIPS:            6387.93
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_go
                         od nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy sv
                         m extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate
                          ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc c
                         qm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists
                          pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca fsrm
Virtualization features: 
  Virtualization:        AMD-V
Caches (sum of all):     
  L1d:                   256 KiB (8 instances)
  L1i:                   256 KiB (8 instances)
  L2:                    4 MiB (8 instances)
  L3:                    16 MiB (1 instance)
NUMA:                    
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-15
Vulnerabilities:         
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Not affected
  Retbleed:              Not affected
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP always-on, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                 Not affected
  Tsx async abort:       Not affected

# free
               total        used        free      shared  buff/cache   available
Mem:        32716960     5126216    23894376      252784     3696368    26892696
Swap:       16777212           0    16777212

# uname -a
Linux lsh-ubu 6.2.1-060201-generic #202302251141 SMP PREEMPT_DYNAMIC Sat Feb 25 11:49:50 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux


Пробовал и на более старом 5.17 - аналогично. Система в это время ничего не делала, браузер с ЛОРом, терминал, пара мессенджеров.

А все говорят, что LUKS на производительность влияет очень незначительно. Что-то у меня непохоже на «незначительно». Может надо явно какую-нибудь аппаратную поддержку включить или ещё что?

Спасибо!

 , , , ,

ls-h
()

Синхронизация большого количества файлов с сохранением жёстких ссылок

Привет всем!

Подскажите, какие есть альтернативы для rsync в плане синхронизации большого количества файлов с большим количеством жёстких ссылок на удалённый компьютер с доступом по ssh?

У меня есть локальная резервная копия рабочих данных. Точнее можно сказать, это несколько снимков по датам, которые создаются с помощью команды rsync и опции --link-dest=. Т.е. за счёт использования жёстких ссылок, занимаемое место ровняется объёму одной копии, плюс разницы между копиями, но при этом я получаю несколько снимков состояния в разное время. На данный момент хранится 4 копии, за 4 дня, но это не суть.

Теперь я это хочу синхронизировать на удалённый компьютер по ssh. Но с rsync есть проблема, т.к. опция --hard-links работает только в рамках одной сессии синхронизации, про что написано в мануале: Note that rsync can only detect hard links between files that are inside the transfer set. В моём случае это не вариант, т.к. объём данных достаточно большой, и интернет соединение точно будет разорвано ещё до передачи всех данных. Да и в рамках одной сессии это работает недостаточно надёжно, о чём написано, например, тут: https://serverfault.com/questions/363670/rsync-avzhp-follows-hardlinks-instead-of-copying-them-as-hardlinks (есть некоторый лимит отслеживаемых ссылок, после которого перестаёт работать) Т.е. связанность распадается и я получаю в четыре раза больше передаваемых и хранимых данных. Это очень нехорошо, т.к. на целевом сервере ограничен трафик и место.

Ещё хочу уточнить, что резервную копию я делаю не непосредственно с локальных данных, а через gocryptfs в реверсивном режиме. Т.е. локальные данные у меня доступны как есть, а в точке монтирования gocryptfs они представлены в зашифрованном виде. Однако, насколько я могу судить, проблема не в gocryptfs, т.к. stat для разных путей, что ведут к одним и тем же данным, показывает точно один и тот же inode. Получается, что проблема именно в rsync.

Чем бы его заменить?

 , , , ,

ls-h
()

О виртуалках, игрульках и хроме

Здравия, ЛОРчане!

Относительно недавно на Chromebook'и стали натягивать Steam: https://chromeos.dev/en/posts/bringing-steam-to-chromeos#leveraging-virtual-m... Пока оно ещё не совсем готовое, далеко не всё работает. Но простые игры уже вполне идут, можно посмотреть вот тут, например: https://www.youtube.com/watch?v=y2yvIrjaPew Да, видео на японском, однако и так всё понятно.

На данный момент я в этом особого смысла не вижу, т.к. в большинстве подобных устройств вместо видеокарты слабая встройка. Хотя, может быть это такой план у Google и потом появятся более мощные устройства. А вообще интересно тут другое, как оно работает. Насколько я понял из первой ссылки, для этого сделали лёгкую виртуальную машину, в которую «пробросили» драйвер Venus, реализующий сериализацию Vulkan'а.

Так вот, что интересно. Насколько можно такое или что-то подобное запустить на обычном GNU/Linux и Virtual Machine Manager? Или просто QEMU+KVM. Было бы довольно удобно отделить всякую ерунду от основной системы. Коненчо, если там будет нормальная производительность.

Что думаете?

 , , , ,

ls-h
()

PipeWire и запись разговоров в мессенджерах

Добрый вечер, ЛОРчане!

Как известно, в Ubuntu с версии 22.10 используется PipeWire вместо горячо любимого на ЛОРе PulseAudio. Кажется, новый сервер вполне ничего, хотя я пробовал пока только на live системе. Правда есть один вопрос, который я ещё не знаю как лучше решить - запись звука с микрофона и динамиков при разговоре в мессенджере. В PulseAudio у меня для данных целей был скрипт:

#!/bin/bash

microphone_audio_device="default"
output=$(pacmd list-sinks | grep alsa_output | grep analog | awk '{print $2}' | sed 's/>//g;s/<//g')
speakers_audio_device="$output.monitor"
target_directory="/path/to/a/dir"

rc="ffmpeg -f pulse -thread_queue_size 512k -i $speakers_audio_device -f pulse -thread_queue_size 512k -i $microphone_audio_device -map 0 -map 1 -codec:a aac -codec:a aac"
$rc $target_directory/`date +%Y_%m_%d__%H_%M_%S`.mkv

Он для меня удобнее чем запуск GUI приложения, т.к. можно одной командой начать запись сразу в нужном мне формате. Я попробовал его на live системе и он отказался работать. Первая проблема в pacmd, который в принципе не будет работать с PipeWire. Но и без него (если прописать устройство) тоже не работает.

В принципе и ладно, для PipeWire есть утилита pw-record. Но в ней есть неудобство - аудио с разных источников смешиваются. ffmpeg в моём скрипте звук с микрофона пишет в одну дорожку, а от приложений - в другую. Это удобно, т.к. легче прослушивать отдельную дорожку, чтобы другая не мешала. Для pw-record такого варианта не нашёл.

Как/чем записать звук на отдельные дорожки при использовании PipeWire? Да и выбор кодека не помешал бы...

Всем спасибки!

P.S.: Кстати, раз уж это PipeWire, то не помешало бы и опционально иногда записывать видео. Однако, важный момент тут в том, чтобы это было быстро, одной командой (можно тоже скрипт), чтобы не надо было что-то нажимать в OBS или аналогичных программах.

 , , , ,

ls-h
()

Редирект SMS (и других уведомлений) на e-mail

Добра, ЛОРчане!

Можно сказать, небольшое ответвление от этой темы. Тот же самый рутованный телефон с Android 9 на борту, который лежит далеко от меня, но к нему есть удалённый рабочий стол. Появилась ещё задача получать с него SMS'ки. Можно и другие уведомления заодно. В принципе, я могу периодически подключаться через RustDesk, что и делаю. Однако, это не особенно удобно, периодически забываю. Хорошо бы на электронную почту чтобы приходило. Да, приложения для этого есть, я Google'ил, но они проприетарные сплошь.

Может быть кому попадалось что-то открытое на данную тему?

Всем добра!

 , , , ,

ls-h
()

Как получать уведомления от другого пользователя, с другого виртуального терминала?

Привет всем!

Решил, что пора хорошенько разделить разные занятия на разных пользователей у себя на компе. А то бардак быстро образуется в директории загрузок, в истории команд и в открытых окнах. В принципе было бы даже удобно для каждого пользователя полностью логиниться в отдельное DE (со своими удобными настройками) на отдельном VT. Единственное неудобство в том, что для обоих пользователей (т.е. занятий) надо использовать мессенджеры и это может происходить одновременно. Соответственно, когда открыт VT одного пользователя, уведомления о сообщениях (да и других событиях) от другого не слышны и не видны, пока не переключишься.

Как можно дублировать уведомления между разными VT?

Спасибо!

 , , , ,

ls-h
()

Удалённое управление Android телефоном с поддержкой звука (звонков)

Привет всем!

Есть старый телефон Redmi 5 Plus, на котором стоит Android 9, root права в наличии. Система Havoc 2.9. Сейчас для управления использую RustDesk 1.1.10-1. Это приложение могло бы передать звук, но ему надо Android 10 или выше (про это написано вот тут https://rustdesk.com/docs/ru/manual/control-mobile/). Обновить ОС возможности нет. Хотя прошивки более свежие под телефон есть, но телефон от меня физически далеко.

Есть ли какое-то открытое и свободное ПО для управления с поддержкой звука? Проприетарщине доверять как-то не особенно хочется.

P.S.: Собственно звук нужен чтобы через него удалённо позвонить.

Всем спасибо!

 , , , ,

ls-h
()

OpenVPN через SOCKS5 proxy при использовании NetworkManager'а

Привет всем!

Коротенький вопрос. Есть давно настроенный VPN, оригинальный конфиг отсутствует. Подключение осуществляется с помощью NetworkManager'а, вот его конфигурационный файл:

[connection]
id=ID
uuid=37ab0eac-0a99-4f38-9cf0-1e8e65f046ca
type=vpn
permissions=

[vpn]
ca=/path/ca.crt
cert=/path/cert.crt
cert-pass-flags=0
cipher=AES-256-CBC
connection-type=password-tls
key=/path/private.key
password-flags=1
port=1194
proto-tcp=yes
remote=vpn.b-rain.org
username=user@company.org
service-type=org.freedesktop.NetworkManager.openvpn

[ipv4]
dns-search=
ignore-auto-dns=true
method=auto
never-default=true
route1=10.8.0.0/24,10.8.0.1
route2=192.168.3.0/24,10.8.0.1
route3=192.168.88.0/24,10.8.0.1
route4=192.168.123.0/24,192.168.88.1

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

[proxy]

Сейчас напрямую сервер OpenVPN недоступен, но доступен через прокси. Как тут сказать, чтобы использовался SOCKS5? Что-то не нагуглю никак...

Спасибо всем!

 , , , ,

ls-h
()

Как люди выбирают телефон?

Привет други!

Как выбрать телефон под свободную/нормальную прошивку (+ без проблем с загрузчиком) и с актуальными характеристиками? При этом хотелось бы купить его локально, т.е. всякое Али не подходит. Потому, что долго ждать и насколько его хорошо довезут - лотерея.

Допустим, начинаю поиск с Яшамаркета, отбираю там нужные параметры, вроде:
* От 6 ГБ оперативной памяти, но лучше от 8 ГБ.
* Поддержка карт памяти. Не для расширения накопителя, а бывает удобно туда закинуть прошивку или сделать резервную копию, и т.д.
* Ядров в процессоре 8 или около того. Не знаю, сколько сейчас актуально.
* Если будет 5G, то хорошо, буду чипироваться. Правда в наших краях его пока нет.
* Батарейка от 4500, минимум.
* Экран от Full HD.
* Хорошо бы влагозащиту.
* Камеры имеют мало значения. Я если что снимаю, то документ какой или прыщ за ухом, чтобы посмотреть чего там. А если не документ и не прыщ, а что-то на улице, то там скорее важно запечатлеть сам факт, а не его художественную ценность.
* Не люблю всякие каплевидные вырезы на экране, но они сейчас почти везде.

Получаю список. Как теперь узнать, для чего из этого есть нормальные прошивки? Копирую название модели, вставляю в Google поиск, дописываю «4pda» и получаю, что прошивки там либо ещё отсутствуют в принципе, либо есть вроде как LineageOS, но она от непонятно кого (т.е. unofficial, а это мне неинтересно, не лучше чем доверять самому производителю), либо надо как-то дополнительно приседать, чтобы разблокировать загрузчик (привет Xiaomi).

Если идти от обратного, например, с того же 4pda и открыть там список прошивок, то в топе в основном старьё. И я не нашёл какой либо возможности показать только те темы про прошивки, которые относятся к новым телефонам, а не 2018 года или даже раньше. Если, например, идти от сайта LineageOS, то там неудобно выбирать по характеристикам. Кроме того, не всё что там находится можно купить в РФ.

Где найти сайт, чтобы там был и выбор по характеристикам, и проверка наличия прошивок для людей, плюс, чтобы это продавалось в РФ? Или другой вопрос... Может посоветуете конкретную модель какую?

P.S.: Цена. Хм... Допустим до 30к. Хотя если что-то прямо совсем интересное, то можно чуть больше.
2P.S.: Сейчас Xiaomi Redmi Note 5, Havoc OS, которая понравилась множеством удобных настроек и возможностью записи разговоров из коробки. Да, загрузчик разблокировал путём обращения к китайским товарищам, ждать надо было, да.
3P.S.:Кстати, сейчас на некоторых Xiaomi с процессороми Mediatek можно разблокировать и без вопросов к китайцам. Однако, с прошивками для таких телефонов всё равно не густно.

 , , , ,

ls-h
()

ZFS RAID на HDD и SSD. Повышение производительности.

Привет всем!

Прошу небольшого совета по улучшению производительности RAID хранилища на ZFS.

На данный момент имеется такая конфигурация:

NAME                                  STATE     READ WRITE CKSUM
hdd-zraid                             ONLINE       0     0     0
    raidz2-0                          ONLINE       0     0     0
    ata-TOSHIBA_HDWG160_41N0A08MFAWG  ONLINE       0     0     0
    ata-TOSHIBA_HDWG160_41X0A007FAWG  ONLINE       0     0     0
    ata-TOSHIBA_HDWG160_41X0A00HFAWG  ONLINE       0     0     0
    ata-TOSHIBA_HDWG160_41X0A034FAWG  ONLINE       0     0     0
    ata-TOSHIBA_HDWG160_41X0A036FAWG  ONLINE       0     0     0

Как можно видеть, собрана на 5-ти HDD Toshiba N300 [HDWG160UZSVA], по 6 ТБ каждый. Т.е. доступного пространства имеется 18 ТБ. Жёсткие диски подключены в SATA материнской платы, которых 6 штук (один получается свободный), контроллер на м.п.:

lspci |grep SATA
06:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)
07:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)

Кроме того, на материнской плате есть слоты расширения PCI Express 4.0: 1 * x16 (занят видеокартой, но I/O тут небольшой), 1 * x4, 3 * x1. Чипсет X570.

Производительности на HDD не хватает. Есть операция по сборке датасета для обучения НС (обучается на другой машине), где прочитывается около 9 ТБ картинок. Хотя на выходе получается не больше 250 - 300 ГБ, но процедура получается очень долгой. Поэтому возникла мысль заменить HDD на SSD.

SSD по 6 ТБ что-то мне не встретились, ближайший подходящий вариант (т.е. чтобы было >= 6ТБ) - Kingston DC500R на 7.6 ТБ. Соответственно, их надо 5 штук, как сейчас жёстких дисков. Выходит довольно дорого. Зато, можно заменить HDD на SSD один за другим, без остановки системы, как я думаю. Какие в этом случае могут быть подводные камни? Заработает ли TRIM после замены? Правильно ли я понимаю, что после замены всех устройств ZFS можно будет расширить на всё доступное пространство, или нет?

Другой вариант. Можно поставить SSD поменьше, но количеством побольше. По соотношению объёма и цены подходят модели на 4 ТБ. Например, Samsung 870 EVO или Western Digital WD Blue. Не суть важно, в этой категории выбор уже побольше и цены не такие страшные. Чтобы получить такой же доступный объём их надо 7 штук, т.е. будет 20 ТБ. Вообще есть мысль, что лучше 8 штук и тогда можно будет повысить уровень избыточности до RAIDZ3. Но в данном варианте горячая замена уже не получится, придётся создать новый ZFS RAID и на него скопировать всё добро. Возникает вопрос в подключении новых SSD. На материнской плате свободных портов недостаточно, поэтому надо какие-то контроллер(ы) SATA. Я вот нашёл какой-то Espada PCIe8SATAMar и есть мысль таких поставить две штуки, чтобы не нагружать на 100%. Но всё равно есть сомнения, насколько быстро в нём будут работать даже 4 устройства, не станет ли оно узким местом? Вот тут нашлось вроде бы то же самое. В отзывах пишут, что в GNU/Linux работает хорошо и из коробки, но вот на скорость жалуются. Кроме тех нашёл ещё LSI 9400-8i SGL, туда можно будет подключить сразу все 8 устройств. В принципе ради этого вполне допустимо видеокарту переставить в X4 слот, ей хватит, т.к. обмен данными небольшой, обучение не здесь. Но я вообще никогда никакие отдельные SATA контроллеры не покукал. Поэтому и хочу посоветоваться. Что лучше выбрать? Может быть кроме двух Espada или одного LSI есть что-то получше?

Какие вообще есть варианты переезда на SSD?

 , , , ,

ls-h
()

Прошу ликбез по сессиям пользователей

Привет всем!

Расскажите как правильно запускается графическая пользовательская сессия после того, как я ввожу логин и пароль в SDDM/GDM/т.п. Прямо в подробностях. Или угостите ссылкой на подробную документацию. Как-то я в эту сторону очень давно не ковырял GNU/Linux и сейчас, после появления systemd и Ко не могу разобраться. Да, совсем давно... Когда и чем запускается systemd --user? Как стартует пользовательский D-Bus? Когда какие переменные окружения выставляются? Как сессия регистрируется и появляется в списке loginctl? Допустим, если сделать su username, то в списке пользователя нет. Да, это не про графическую сессию, но за одно интересно. В общем, всё детали.

Причины такого любопытства у меня следующие:
* Для лучшего понимания работы системы.
* Для удалённой работы. Иногда подключаюсь к удалённому серверу с помощью X2Go и запускаю там сессию XFCE4. Вообще я любитель KDE, но оно почему-то нормально не работает. Видимо не так надо запускать сессию. Однако и в XFCE4 не всё гладко. Тут не запускаются snap-приложения с такой жалобой: /user.slice/user-1000.slice/session-13.scope is not a snap cgroup. Нагуглил, что это частично, для некоторых snap-приложений лечится установкой переменной окружения DBUS_SESSION_BUS_ADDRESS. Однако, это не работает, когда для приложения надо выставить особые разрешения. Чем-то в этом смысле сессия X2Go отличается от обычной локальной? Как вообще правильно запускать удалённую сессию? Где-то пишут, что надо через dbus-run-session, где-то - через другие аналогичные инструменты. Как правильно?
* Интересно, можно ли самому запустить полноценную сессию пользователя допустим внутри Xephyr?

Спасибо!

 , , , ,

ls-h
()

Полная и удобная синхронизация двух компьютеров

Привет всем!

Есть два компьютера (ноутбук и настольный). Хочу иметь одну и ту же систему на обоих и синхронизировать с того компьютера, где более новое состояние, на тот, где более старое. Начиналось всё с настольного компьютера. Операционная система на нём стоит давно, многократно обновлялась между версиями и всё настроено как мне удобно, нужное ПО, какие-то костыли и т.п. Поэтому я хочу синхронизировать ОС целиком, а не только настройки или отдельные файлы.

На данный момент стоит Ubuntu 21.10 с KDE, обновление до 22.04 планируется. В обоих компьютерах стоят SSD, размеры которых одинаковые до байта. Накопители имеют GPT таблицу разделов и два раздела: ESP на гибибайт и LVM PE на всё остальное. Внутри LVM: /, /home и swap. Файловые системы везде ext4. Шифрования на уровне блочного устройства или самих ext4 не применяется.

Первую синхронизацию я сделал просто через DD, физически переставив один накопитель в другой компьютер. Естественно, дальше это было неприменимо. Поэтому я написал скрипт, который с использованием ключей SSH делает синхронизацию с помощью rsync. А кроме этого предварительно применяет нужные настройки, поднимает нужные сервисы (сеть, SSH). Запускаю я его из rescue режима, чтобы система в это время ничего не делала. В принципе rescue вполне достаточно, только лишь systemd успевает накидать несколько каких-то незначительных файлов. journald при этом остановлен. Хотя, конечно, загрузка с отдельного носителя или какой-то специальный initramfs подошли бы больше. Но, в общем, работает в обе стороны. Однако недостаточно быстро.

А недавно возникла необходимость изменить логические тома на LVM. И после такого изменения один rsync уже не поможет, т.к. размеры томов изменились. Мало того, что изменения размеров томов так не синхронизируются (естественно), так и на одном места для данных не хватит теперь. Конечно, можно синхронизировать опять через dd, но разбирать не хочется, а через сеть медленно. Да и перезаписывать накопитель целиком ещё раз тоже идея так себе. Можно и руками изменить размеры на целевой системе, но муторно. Надо будет сначала удалить ненужные файлы, чтобы освободилось место, потом поменять размеры, потом синхронизировать. А если понадобиться изменить размеры ещё раз, то опять? Морока...

И я подумал, нет ли какого-то решения, чтобы синхронизировать два PV или VG, но только те экстенты, что изменились? Погуглил, но ничего не нашёл. Не знаю, хранят ли экстенты время последнего изменения, чтобы это было в принципе возможно. Хотя тут хватило бы даже не времени, а просто некоторого идентификатора компьютера. Например, когда ОС записывает что-то, то в метаданных экстента записывается хеш от названия материнской платы или т.п. Но это я уже фантазирую. Так существует ли что-то подобное? Может быть как некое дополнение к обычному LVM?

Если ничего такого нет, что тогда? Я нагуглил штуку под названием Distributed Replicated Block Device. Но пока не разобрался по поводу загрузки с неё. Кроме того, она должна же быть под LVM, т.е. это надо всё переустановить. Точнее, скопировать куда-то, потом переразбить носитель и скопировать всё обратно.

Какие есть другие варианты, если без переделывания всего не получится обойтись? У меня такие мысли:
* Один LV просто на весь объём накопителя, тогда не надо будет менять его размер. Но мне это решение не очень нравится, т.к. я хотел завести себе LXC контейнеры и под них создавать отдельные LV. Кроме того, деление на LV и для бекапов полезно. Да, бекапы у меня отдельно, это не на другой компьютер.
* Какие-то иные файловые системы, вроде ZFS и BTRFS могут мне что-то предложить? Думаю, что subvolume (или что-то такое) вполне заменят отдельные LV как для LXC, так и для бекапов. Правда у меня память что там, что там без ECC. А она вроде как очень рекомендована для таких файловых систем.

Кто что думает?

P.S.: Написал в администрирование т.к. думаю, что вопрос больше подходит сюда, т.к. выходит за рамки повседневного использования, хоть это и для личных нужд и «администрирую» я локальные свои системы.

 , , , ,

ls-h
()

Legion 5, энергопотребление и другие мелочи

Привет всем!

Есть лаптоп Lenovo Legion 5 15ACH6A, модель 82NW001GRU. Сейчас на нём стоит свежая Kubuntu 22.04. Пока из того, что уже проверил вроде в основном всё работает. Не пробовал ещё внешний монитор, надо проводок купить. Ну и есть мелочи, которые перечислю ниже.

Основной вопрос в том, что он много жужжит вентиляторами и быстро разряжается, даже когда ничего особо не делаю. Вот, этот текст набираю, открыто ещё 8 вкладок с одним текстом (результаты гугления, форумы, вики, никакого видео) и konsole с top'ом. Top показывает %Cpu(s): в районе 0,5 - 1,6. При этом ноутбук что-то активно охлаждает. Поставил Psensor (KDE'шный виджет почему-то никаких датчиков не нашёл), процессор 42 градуса, видео 44 (не знаю пока, какое из двух, написал максимальное значение), накопитель тоже 44. На небольшие промежутки вентиляторы выключаются, потом опять. Видимо у лаптопа порог где-то рядом с этими значениями. Такое поведение проявляется вне зависимости от розетки.

Попробовал менять CPU Governor на Powersave. Частота снижается, но проблему это не решает. Ещё тут есть сочетание клавиш для смены разных профилей производительности/энергопотребления - «Fn+Q» (на наклейке написано). Всего их три: тихий (синий), сбалансированный (белый) и производительный (красный). Цвета соответствуют цветам светодиода на кнопке питания в нужном режиме. У меня получается переключать только между тихим и сбалансированным. При выборе тихого тише не становится, вообще такое впечатление, что меняется только цвет индикатора. Производительный (красный) выбрать не получается в принципе. Под Windows для этой приблуды должна быть какая-то своя софтина, но Windows у меня нет, Windows это зло. Не знаю, может быть магия в софтине, а не прошивке лаптопа. Как бы это переключение ещё отлавливать?

В общем, как бы его заставить вести себя тихо, не втягивать пыль, не жрать батарейку в то время, когда нагрузки нет? Да, я понимаю, что аппарат позиционируется как типа игровой, а не портативный и долгоживущий. Но всё таки хотелось бы... Что можно сделать? Можно ли совсем отключать вторую видеокарту, когда не требуется? Или, если я на ней явно ничего не запускаю, то она и не потребляет? Мне, судя по показателям температуры, кажется, что всё таки потребляет и в простое.

Кроме этого ещё такие вопросы:
* Как изменить частоту дисплея с 165 на 60 Гц? Опять же для снижения потребления энергии. Кроме того, хочу посмотреть, как будет плавность. Почему-то в Wayland сеансе всё невероятно плавно и без лагов, а в X11 есть какие-то периодические фризы и фризы, особенно заметны при минимизации окон, как будто FPS падает до 15 - 20. Мне думается, вдруг это Xorg'у не нравится такая большая частота обновления? В настройках KDE, и через xrandr частоту сменить не получается, есть только 165. А Wayland сам по себе пока не особо готов (перестают работать приложения x11, некоторые кнопки Plasma не всегда работают, например «Shut down» в меню) в KDE, поэтому его не хочу.
* На тачпаде жесты для переключения окон и масштабирования в Лисе работают только в сеансе Wayland, в X11 почему-то не хотят.
* В X11 тачпад вообще какой-то странный, нажатия тремя пальцами срабатывают через раз, а в Wayland - нормально всегда.
* Как там с ускорением воспроизведения в браузерах на GPU от AMD?

Linux Legion 5.15.0-27-generic #28-Ubuntu SMP Thu Apr 14 04:55:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne Root Complex
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge
00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus
00:08.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 51)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 3
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 5
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 6
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 7
01:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch (rev c3)
02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6600/6600 XT/6600M] (rev c3)
03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 HDMI Audio [Radeon RX 6800/6800 XT / 6900 XT]
04:00.0 Non-Volatile memory controller: SK hynix Gold P31 SSD
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
06:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8852AE 802.11ax PCIe Wireless Network Adapter
07:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne (rev c5)
07:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor
07:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1
07:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1
07:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] Raven/Raven2/FireFlight/Renoir Audio Processor (rev 01)
07:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) HD Audio Controller
08:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 81)
08:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 81)

Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         48 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  16
  On-line CPU(s) list:   0-15
Vendor ID:               AuthenticAMD
  Model name:            AMD Ryzen 7 5800H with Radeon Graphics
    CPU family:          25
    Model:               80
    Thread(s) per core:  2
    Core(s) per socket:  8
    Socket(s):           1
    Stepping:            0
    Frequency boost:     enabled
    CPU max MHz:         4462,5000
    CPU min MHz:         1200,0000
    BogoMIPS:            6387.59
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx m
                         mxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pcl
                         mulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic
                          cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext per
                         fctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms in
                         vpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_m
                         bm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_cl
                         ean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes v
                         pclmulqdq rdpid overflow_recov succor smca fsrm
Virtualization features: 
  Virtualization:        AMD-V
Caches (sum of all):     
  L1d:                   256 KiB (8 instances)
  L1i:                   256 KiB (8 instances)
  L2:                    4 MiB (8 instances)
  L3:                    16 MiB (1 instance)
NUMA:                    
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-15
Vulnerabilities:         
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl and seccomp
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP always-on, RSB filling
  Srbds:                 Not affected
  Tsx async abort:       Not affected

 , , , ,

ls-h
()

Как обезопасить свой компьютер от вредоносного кода из сторонних библиотек/модулей?

Привет всем!

В связи с вот этой новостью Специальный вредоносный код в npm-пакете для России и Белоруссии собственно и возник вопрос. Там я уже его задавал, но решил вынести в отдельную тему, т.к. у меня проект несколько другой, да и не node это вообще.

Проект на тему ML, в нём используется:
* Python
* PyCharm
* Docker
* OpenCV
* TF Keras
Плюс куча пакетов Python'а на все случаи жизни, которым нет числа. Точнее, там много разных requirements.txt для разных частей (отдельно для training, отдельно для inference, отдельно для утилит), там есть пересечения в используемых пакетах. Сколько уникальных пока точно не посмотрел. Ну, допустим, штук 150. Никто ведь не помешает в pypi.org положить такую же каку со следующей версией библиотеки, как по ссылке выше, ведь так?

Да, логично зафиксировать версии, ничего просто так не обновлять, а если обновлять, то очень внимательно следить, что изменилось. Но тут легко что-то пропустить. Кроме того, в начале этого месяца уже были обновления (да, надо будет вникнуть, что там).

Локально я ничего не обучаю, однако не всё так просто... Обучение происходит на Азуре следующим образом: у меня запускается Docker контейнер, в нём код для работы с Азурой плюс сам код, который там будет выполняться и обучать модель, плюс все вспомогательные файлы. Всё это запаковывается, отправляется на Азуру, а там становится средой выполнения. Контейнер настроен так, что у него есть доступ наружу, в директорию с проектом. Это так by design, было до меня и просто так переделать это невозможно. Кроме собственно обучения я иногда просто тестирую код каких-то утилит локально, т.к. это многократно быстрее, чем запуск на Азуре ради того, чтобы понять, что оно падает или преобразует входные данные не так, как планировалось. Проекту нужно иметь доступ к камере, а мне нужно в реальном времени и с минимальной задержкой видеть окна с обработанными кадрами.

Всё осложняется тем, что весь проект очень большой 62,4 GiB, 1 772 813 files, 102 363 sub-folders. И это не считая того самого контейнера. Там ещё гигов 15. Да, естественно, не всё это гоняется на Азуру при каждом запуске, только разница (упрощённо говоря).

Как всё это огородить от основной системы и от бекапов (лежат на отдельном винте, делаются каждый вечер самой системой, где запускается рабочая среда)?

Мыслей у меня две:
* Виртуалка, в ней лёгкая система
* Контейнер LXC

В обоих случаях хорошо бы «прокидывать» (X11 сетевая прозрачность, настало твоё время!) окна графических приложений наружу, чтобы не запускать целый DE внутри. Надо чтобы это работало быстро, т.к. видео. И надо какую-то панель изнутри, чтобы запускать программы внутри изолированной среды.

Если LXC:
+ Благодаря единому ядру потребление памяти будет ниже, будет более гибким
+ Аналогично для места на накопителе, т.к. не надо будет выделять какой-то файл образа
+ Работа с файлами будет быстрее, т.к. не будет конструкции «файловая система в файле на файловой системе». Это важно, т.к. много мелких.
+ Проще «прокинуть» web-камеру. Т.е. для этого и делать ничего не надо.
+ Просто организовать прямой доступ к GPU
- Ниже безопасность, т.к. можно эксплуатировать уязвимости ядра
? Как из LXC будет запускаться Docker? Пробовал кто? механизмы у него и у LXC ведь один и те же.

Если виртуалка, я думаю надо что-то максимально лёгкое, вроде QEMU+KVM, с минимальной системой внутри. В этом случае:
+ Выше безопасность, т.к. ядро отдельное
- Больше места занимает
- Управление занимаемым местом не такое гибкое. Да, про динамический образ я в курсе.
- Ниже производительность при работе с файлами, особенно с мелкими
- Надо прокидывать устройства, что тоже снизит производительность
- Ниже производительность из-за эмуляции железа
- Проблемы с быстрым выводом графики
- Потребление памяти не гибкое. Можно использовать ballooning, но не знаю, насколько эффективно оно работает. Да и при старте виртуалка будет потреблять всё равно весь объём.
? Пробовал ли кто прокидывать внутрь виртуалок файловую систему c помощью Virtiofs или чего-то подобного? Смысл в том, чтобы файлы проекта остались доступными и снаружи, так их проще бекапить и не будет накладных расходов на две файловые системы.

Я пока склоняюсь к первому вариантус LXC. Я не думаю, что с пакетами может придти уж очень серьёзная малварь, которая будет эксплуатировать дырки в ядре. Вопрос в основном только в Docker'е, как он будет запускаться.

Какие у кого мысли? Да, я тут не рассматриваю безопасность самой host системы, так то ведь может и с обновлениями ОС что-то попасть, кака какая-то.

P.S.: i7-4770 (да, старичок, но сейчас чего купишь?), 32 GiB, Ubuntu 21.10

 , , , ,

ls-h
()

Шифрование

Привет всем!

Думаю, как лучше обеспечить конфиденциальность данных. Ничего особенного, но хотелось бы иметь защиту на случай, например, потери носителя (вместе с компьютером :-). Данные:
* Файлы рабочего проекта
* Ключи от рабочего сервера
* Личная переписка
* Всякое разное: документы, фото, какие-то заметки
* Ничего наказуемого

Погуглил, вижу такие, понятные мне решения: LUKS, eCryptfs, fscrypt.

Размышления следующие:
* Кажется, для меня нет смысла в шифровании системного раздела или всего блочного устройства. Зачем шифровать стандартные пакеты и настройки в /etc? Если система будет скомпрометирована, то в любом случае проще всё переустановить. Так же, возможно, будет отдельный пользователь, которого не надо защищать, для игр и всякой ерунды. Т.е., если шифровать не всё, то это должно положительно отразиться на производительности.
* Следовательно, eCryptfs или fscrypt для домашней директории целиком будут лучше, чем целое блочное устройство.
* eCryptfs это «слоёная файловая система», файлы доступны и в зашифрованном виде (нижний слой). Я думаю, что можно прямо так, с нижнего слоя, делать резервные копии на другой носитель, тогда его отдельно не надо будет шифровать. И можно хоть в облако загрузить. Или лучше не надо?
* С другой стороны, fscrypt это элемент самой файловой системы ext4, а не надстройка сверху, значит работать должно быстрее.
* В нескольких местах читал, что дистрибутивы отказываются от eCryptfs, мол разработка заглохла, не развивается. Там реально есть какие-то проблемы с безопасностью, потерей данных и производительностью или это просто перестало быть модным?

Я пока склоняюсь к eCryptfs. Носитель SSD.

 , , ,

ls-h
()

Очищение и увлажнение воздуха дома

Привет, ЛОРчане!

Как известно, зима это время использования отопления и низкой влажности, а, следовательно, и сухости кожи. Правда зима скоро заканчивается ага проснулся, надо было раньше про это думать. Но летом больше летит пыли с улицы.

В общем я подумал, что надо бы повысить влажность в помещении и очистить воздух от пыли. Поэтому хочу купить мойку воздуха. Да, именно мойку, а не просто увлажнитель, чтобы пыль оставалась внутри. Конечно, она не так сильно повышает влажность, но зато меньше пыли.

Собственно хочу посоветоваться. Может быть тут кто использует подобные агрегаты? Что выбрать?

* Бюджет до 20к примерно. Но это если прямо хороший аппарат. Жаба просит за 10к - 15к, говорит, что хотелось бы подешевле, т.к. это вполне простое механическое устройство. Непонятно, почему они все столько стоят...
* Чтобы можно было ставить как на пол, так и повыше, например на тумбочку. Т.е. чисто напольные на колёсиках не надо.
* Чтобы можно было отрегулировать, куда выдувает. Ну или просто повернуть куда надо. Это к тому, что если буду ставить ближе к себе, то надо отвернуть «соплом» от компа, а то отсыреет ещё.
* С режимами работы, чтобы регулировать интенсивность и, соответственно, шумность.
* Вообще не особо шумную, чтобы не мешала хоть днём, хоть ночью.
* Обеззараживание. Может быть с УФ лампой или чем-то растворяющимся в воде. Не хочется, чтобы оно цвело потом.
* Легко разборную и легко моющуюся.
* Чтобы было можно залить горячую воду, т.к. я хочу использовать кипячёную и не хочу ждать, когда остынет до комнатной температуры. Конечно, не кипяток, но важно, чтобы там ничего не повело.
* Хорошо бы с автоотключением, когда закончилась вода. Можно с индикацией, но беззвучной, если только тусклым диодом помигивать будет.

Кроме выбора есть вопросы по эксплуатации:
* Чем лучше заправлять? Я на первое время думаю просто кипячёной водой после фильтра типа кувшин. Может быть потом куплю дистиллятор, но это не точно. Вроде дистиллированная вода больше важна для УЗ увлажнителей, чтобы не было белого налёта на мебели и не разлетались бактерии по помещению.
* Куда ставить. Я бы хотел недалеко от себя, чтобы ближе ко мне было меньше пыли, а вдыхаемый воздух был чище. Но ближе ко мне это ближе к компу, т.к. я за ним и работаю. Что он скажет на повышение влажности? Мне кажется, ничего плохого быть не должно, если прямо на него не направлять. Всё таки мойка воздуха это не УЗ увлажнитель и пар из неё не выходит клубами.
* Часто ли и как надо обслуживать, чем мыть?

GNU/Linux тут при том, что пингвины дышат чистым морским воздухом. А ЛОРчане ничем не хуже!

 , , , ,

ls-h
()

Как лучше хранить большой массив информации? mdadm / lvm / zfs / btrfs

<UPD> Остановился на ZFS по следующим причинам:
* Попробовать интересно
* Контрольные суммы для данных, что должно повышать надёжность
* Это решение всё в одном. Например, ZFS знает, какие блоки принадлежат файлам, а какие свободные. Поэтому при сборке массива не надо ждать, пока по-XOR-ится свободное место, в отличии от mdadm.

Я попробовал mdadm, не увидел, чтобы с ним было быстрее. Возможно, это бы проявилось на SSD, но у меня обычные HDD. Да, в варианте с ZFS есть недостаток, что массив нельзя расширить просто добавив один диск. Но мне прямо сейчас оказалось не надо, это на будущее. А, как тут писали, скоро необходимое решение появится.

Всем спасибо!
</UPD>
-----------
Доброе утро, ЛОРчане!

Подскажите, как лучше организовать надёжное хранение большого объёма данных, с кучей файлов. Данных всего примерно 13 ТиБ, может быть чуть больше.

Их можно разделить на две группы:
* 8 ТиБ, примерно 450 000 файлов, размером в среднем от 10 МиБ до 25 МиБ. В 90% случаев они будут только читаться, в 8% дополняться, в 2% удаляться/перезаписываться. Данные уже сжатые, сжать лучше вряд ли получится.
* Примерно 5 ТиБ и около 5 300 000 файлов, очень разного размера, несколько сотен тысяч совсем мелких, по 5 КиБ, какие-то крупные, по несколько гибибайт. Эта группа будет активно обновляться, перезаписываться, удаляться. Тут, теоретически, данные сжимаемые, но не уверен, что это имеет смысл.

Для этого всего припасено 5 дисков TOSHIBA HDWG160, 6 ТБ (5.4 ТиБ).

Я планировал из них собрать что-то вроде программного RAID 6, т.е. полезный объём будет равен объёму только трёх дисков, 18 ТБ.

Что лучше для этого использовать? Собрать средствами mdadm/lvm и сверху разместить ext4 или использовать модные ZFS/BTRFS? Что более надёжно? Что расширяемо? Теоретически, может настать момент, когда объёма хватать перестанет. Смогу ли я добавить ещё такой же диск в массив не потеряв надёжность? Какой вариант будет легче/быстрее восстановить, если накроется один диск? А два?

Каких-то особых возможностей на данный момент не требуется, снапшотов, вероятно - тоже. Может быть, «версионирование» состояний некоторой части данных, для которого хватит скрипта, что будет создавать директории с датой в имени и хардлинки для файлов между ними. Но, если это будет происходить средствами ФС, то хорошо.

P.S.: Памяти 32 ГиБ, Error Correction Type: Multi-bit ECC, что для ZFS должно быть вполне хорошо.
P.P.S.: Может быть какой туториал посоветуете?

 , , , ,

ls-h
()

Замена последовательности символов на другую в бинарных файлах

Решение: Замена последовательности символов на другую в бинарных файлах (комментарий)

Братья и сёстры линуксоиды, подсобите советом!

Чем в большом множестве файлов заменить одну последовательность символов на другую? Есть около 1.7kk файлов (в сумме 43 GiB, размер самих файлов очень разный), как текстовых, так и совсем бинарных. Во многих из них встречается строка «ABcd123», надо заменить на «CDef123». Или вроде того. Важно, что длина строк одинаковая и размеры файлов должны остаться такими же, как были до правок, чтобы там никакие бинарные структуры не «поплыли», вне зависимости от того, что это за файл, хоть исполняемый. Поскольку файлов много, то желательно это сделать прямо на месте, без временного копирования. И хорошо бы ещё удостовериться, что всё прошло хорошо, ничего не изменилось кроме указанной последовательности.

Кроме того, есть ещё второй смежный вопрос. Чем ту же последовательность заменить в target'ах символьных ссылок?

Суть в том, что эта последовательность - имя директории, где всё это лежит и она много где «осела» и в ссылках и в самих данных.

Думается, sed для такого не очень подходит.

Благодарствую!

 , , , ,

ls-h
()

Подобрать оптимальный GPU под существующую модель tf.keras

Приветствую, лорчане!

Есть в проекте существующая модель, которая создавалась до меня. Это несколько доработанная ResNet. Сейчас она обученная выполняется на настольном GPU от NVIDIA аж для 4х камер одновременно. Производительности хватает. Возник вопрос, можно ли модель перенести на NVIDIA Jetson (какой именно - надо ещё выбрать), точнее на 4 штуки, которые будут по одному на камеру. И желательно ответ получить до покупки этих самых Jetson'ов.

Я думаю, этот вопрос можно разделить на такие составные части:
* Хватит ли производительности GPU? Насколько я нашёл, можно измерить FLOPS примерно так и потом сравнить с производительностью GPU в Jetson (или просто другой видеокартой).
* Хватит ли памяти на ускорителе? Это должно быть проще, просто посмотреть, сколько занимает сейчас.
* Проблемы с переносом с x86_64 на ARM. Тут, вроде, всё должно быть Ок. Используется tensorflow, numpy, opencv, т.е. ничего необычного.
UPD:* Ещё вопрос, насколько там дохлый CPU, т.к. есть некоторая предобработка кадра на нём.

Правильный ли подход с измерением требуемых вычислительных ресурсов (FLOPS)?
Правильно ли сравнивать потребление памяти на GPU разных архитектур?

Может быть у кого такой опыт есть, что посоветуете?

 , , , ,

ls-h
()

Менеджер фотографий для быстрой классификации

Привет всем!

Пытаюсь разобрать много тысяч фотографий, которые пойдут на обучение нейронной сети. Они лежат по директориям с ID классов, допустим, 0001, 0002, 0003 и так далее. Сами фотографии очень большого размера, это раз. Напрямую с ними очень медленно и неудобно работать, т.к. они лежат на далёком-далёком сервере, это два. Из-за объёмов выкачать нереально, а закачать обратно - тем более, это три. Поэтому было решено на том сервере генерировать из них многие тысячи thumbnails (масштабировать, обрезать, сжать с потерей качества) в формате jpeg, их выкачать и разобрать локально. А потом написать скрипт, который прочитает правила (что куда) и сделает всё то же самое уже на сервере с оригинальными изображениями.

Собственно нужен некий менеджер фотографий, где можно было бы картинки из thumbnails быстро отметить разными тегами, например: «good», «bad», «recheck» и «move_to_classid». Важно, чтобы это было максимально удобно и быстро, чтобы можно было повесить теги на нажатие кнопок. Допустим «+» = «good», "-" = «bad», «0» = «recheck», а по нажатию «M» открывалось бы поле ввода, где можно было бы дописать идентификатор класса в тег «move_to________». После нажатия нужной кнопки (постановки тега) должна показываться следующая фотография. На выходе хочется получить файл в понятном формате, т.е. что-то вроде JSON предпочтительно. Хорошо бы с настройкой формата. Также можно, чтобы эти данные сохранялись в сами файлы, как exif. Но такой вариант хуже, т.к. лучше сами файлы не перезаписывать. Если менеджер будет складывать эти теги в какую-то свою БД, то это совсем нежелательно, много мороки. Кроме того, важно чтобы менеджер показывал как отдельные картинки на весь экран или крупно в окне, так и содержимое директории с картинками сеткой (т.е. получается, thumbnails от thumbnails), с заметными тегами поверх картинок. Вообще тут thumbnails это достаточно условные thumbnails, они сами будут около 800*800 - 1000*1000. Просто исходные картинки ещё больше во много раз.

Конечно, можно написать что-то своё на Python + Qt/GTK. Но всяко такую задачу кто-то уже решил. Что посоветуете?

P.S.: Да, тема не для Talks, но я не знаю, куда лучше написать. С одной стороны, программа которая требуется, это менеджер фото и надо в Multimedia, с другой стороны задача специфичная и ЛОРчане, кто с таким сталкивался, скорее будут бродить по Development. В общем прошу уважаемых модераторов сильно не бить, если важно, то перенести куда следует.

 , , , ,

ls-h
()

RSS подписка на новые темы