LINUX.ORG.RU

Сообщения lignumq

 

Таблица дедупликации ZFS не выгружается в оперативную память

У меня есть пул на котором 3,41 ТБ данных, на томах включена дедупликация, судя по выводу

zpool status -D <pool_name>
...
dedup: DDT entries 73665285, size 696B on disk, 154B in core
...

Я вижу, что в оперативной памяти хранится только 10 ГБ DDT, и если я загружу больше данных, количество блоков увеличится, а байтов уменьшится. Насколько я знаю, ДДТ хранится в метаданных ARC, и при выводе arc_meta_used я вижу там всего около 8Гб, лимит на количество метаданных(zfs_arc_meta_limit_percent) в ARC установлено на 75%, то есть до него еще даже не доходит, объем оперативной памяти = 64гб. почему вся таблица дедупликации не сбрасывается в оперативную память?

согласно этому выводу мой размер DDT составляет 37,19 ГБ

zdb -b pool
bp count:       124780196
	ganged count:           0
	bp logical:    3997925134336      avg:  32039
	bp physical:   3988307198976      avg:  31962     compression:   1.00
	bp allocated:  6056878956544      avg:  48540     compression:   0.66
	bp deduped:    2188370706432    ref>1: 15910160   deduplication:   1.36
	SPA allocated: 3868508110848     used: 25.36%

	additional, non-pointer bps of type 0:         95
	Dittoed blocks on same vdev: 3706666

Почему таблица не выгружается в ОЗУ? и как её выгрузить принудительно?

 , , ,

lignumq
()

Настройка таймаута для удаления мультипас устройств

Подскажите пожалуйста, какие настройки нужны что бы multipathd удалял пути, которые не активны(Ubuntu 18, версия multipath-tools - 0.7.4). я раздаю FC лун по двум путям на убунту, и если я удалю лун, то клиент видит что пути стали failed, но не удаляет их даже спустя час. мои настройки multipath.conf

       dev_loss_tmo             "600"
       no_path_retry            60
       path_selector            "queue-length 0"
       path_grouping_policy     "failover"
       path_checker             "directio"
       failback                 "immediate"
       rr_weight                "priorities"
       flush_on_last_del        no
       fast_io_fail_tmo         180

 ,

lignumq
()

Разный размер блока у логического тома и ФС

Такой вопрос, прошерстил просторы, но конкретного ответа не нашел, везде поверхностная инфа, например имеем lvm том с размером блока 64к, форматируем на нем файловую систему, в моём случае это xfs, но в данном случае это не принципиально, так вот, она форматируется с размером блока 4к. как будет происходить взаимодействие между этими размерами блоков, просядет ли производительность? и далее если расшарить например через nfs, и с клиента запустить fio с размером блока от 8к до 32к, то как это все будет происходить?

если я правильно понял принцип работы, то будет что то типо отправляется с клиента блок 8к, разбивается на блоки по 4к(ФС), и после эти 2 блока по 4к кладутся в блок 64к(LV), так это или нет?

 , , ,

lignumq
()

Изменение размера PAGE_SIZE

Всем привет! есть ubuntu 18.04 ядро 4.19. возникло несколько вопросов, как можно смонтировать xfs с блоком больше чем 4к, например 64к(сформатировать получается, а смонтировать нет), то что нашел это только то что нужно пересобирать ядро и выставлять больше PAGE_SIZE? из этого вытекает другой вопрос, чем черевато увеличение PAGE_SIZE и есть какие либо подводные камни(где то прочитал что это головная боль, но развернутого ответа не было)?

 , , ,

lignumq
()

Деактивация LV's при инициализации системы (LVM)

Добрый день, есть ли способ что бы LVM автоматически деактивировал все LV устройства при старте системы, желательно через конфиг LVM(может быть есть какой то ключ)

 

lignumq
()

Как рекурсивно удалить PV устройство lvm(вместе с lv и vg)

Всем привет, есть необходимость удалять PV устройства у экспортированных VG групп, выполняю:

pvremove -fff /dev/disk/by-id/scsi-35002538a477f2200-part1
Device /dev/disk/by-id/scsi-35002538a477f2200-part1 excluded by a filter.

фильтров никаких нет на этот счет, при выводе с ключем -vvv есть такая запись:

Skipping PV /dev/disk/by-id/scsi-35002538a477f2200-part1 in VG ap2.

Можно ли как то одной командой удалять метку LVM с данного диска, что бы не было ошибок (wipefs -af знаю, хотелось бы средствами самого LVM)

 ,

lignumq
()

Как я могу получить занятое/свободное/общее место на файловой системе xfs, используя язык Си

Всем привет, возник вопрос как можно получить разные типы размеров(свободное, занятое, общее) на файловой системе XFS? например так же как это делает df или xfs_estimate, но не используя эти команды и не парся их. как нибудь через какие то бибилотеки или через ядро

 , , ,

lignumq
()

Curl иногда обрывается по установленному таймауту(как отладить?)

У меня есть сервер с которого я дергаю api через curl, в большинстве случаев исполняется за примерно 0,5-1 сек, но иногда обрывается по таймауту(я выставил 10 сек) потому что без таймаута он вис прям надолго. как можно понять, отладить где проблема. пример url - http://172.16.11.41/Storage/Devices/

код такой:

    if (NULL == (curl = curl_easy_init()))
        goto exit;

    res = curl_easy_setopt(curl, CURLOPT_USERNAME, "admin");

    res = curl_easy_setopt(curl, CURLOPT_PASSWORD, "admin");

    res = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_response_cb);

    res = curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *) &response);

    res = curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10L);

    res = curl_easy_setopt(curl, CURLOPT_PORT, 80);

    res = curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);

    res = curl_easy_setopt(curl, CURLOPT_STDERR, fp);

    res = curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);

    res = curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);

    res = curl_easy_setopt(curl, CURLOPT_URL, url);

я так же пытался вытащить(с помощью функции curl_easy_getinfo) после обрыва таймаута, время которое тратится на какие то операции курла

CURLINFO_TOTAL_TIME: 10.001
CURLINFO_NAMELOOKUP_TIME: 0.000
CURLINFO_CONNECT_TIME: 0.001
CURLINFO_PRETRANSFER_TIME: 0.001
CURLINFO_STARTTRANSFER_TIME: 0.000
CURLINFO_REDIRECT_TIME: 0.000

и вывод флага CURLOPT_VERBOSE

*   Trying 172.16.11.41:80...
* TCP_NODELAY set
* Connected to 172.16.11.41 (172.16.11.41) port 80 (#0)
* Server auth using Basic with user 'admin'
> GET /Storage/Devices/ HTTP/1.1
Host: 172.16.11.41
Authorization: Basic YWRtaW46YWRtaW4=
Accept: */*

* Operation timed out after 10001 milliseconds with 0 bytes received
* Closing connection 0

 ,

lignumq
()

dockerfile 'standard_init_linux.go:219: exec user process caused: no such file or directory'

Всем привет, у меня есть проект, в котором я использую несколько докерфайлов, в первом (назовем его docker1) создается базовый образ системы на основе FROM docker.io/library/ubuntu:focal, потом во втором докер файле (назовем его docker2) который основывается на docker1 FROM image_docker1:1, компилируется проект и задаются разного рода конфигурации. так вот во втором файле при вызове каких то RUN комманд, вылетает ошибка. хотя в первом файле так же есть RUN команды и использование mkdir

Step 5/15 : RUN mkdir /test
 ---> Running in a8455e561a5b
standard_init_linux.go:219: exec user process caused: no such file or directory
The command '/bin/sh -c mkdir /test' returned a non-zero code: 1

что хочу отметить:

  1. запуская образ созданный docker1 через docker run,успешно выполняются команды
mkdir /test
и
/bin/sh -c 'mkdir /test'
  1. ошибка стала возникать после того как я изменил в docker1 какой брать дистрибутив, был bionic стал focal.

Дайте знать если требуется еще какая-то информация

 

lignumq
()

Выдавать ошибку при компиляции если используется «запрещенная» функция

Всем привет, подскажите, как сделать так что бы компилятор выдавал ошибку если находил какую то функцию в списке «запрещенных»? и каким ключом сделать этот список?

то есть например, я хочу что бы если используют функцию strtok, то при компиляции выдавалась ошибка с каким то комментарием что нельзя ее использовать, а нужно использовать strtok_r. язык Си

 , , , ,

lignumq
()

Создание разделов на LVM томе

Есть необходимость создавать на lvm томе 2 раздела c помощью parted. разделы создаются, но devmapper их создает как holders’ы для этого тома лвм:

ls -lh /sys/devices/virtual/block/dm-4/holders/
total 0
lrwxrwxrwx 1 root root 0 Apr  7 17:46 dm-15 -> ../../dm-15
lrwxrwxrwx 1 root root 0 Apr  7 17:46 dm-16 -> ../../dm-16

можно ли как то сделать что бы он создавал партиции внутри самой папки /sys/devices/virtual/block/dm-4/, как например сделано в zfs.

и так же после ребута разделы не появляются, нужно вручную запускать partprobe

 ,

lignumq
()

Отключить создание разделов на multipath устройствах

Проблема такая, есть два сервера(ubuntu), версия мультипаса: multipath-tools v0.7.4 (11/15, 2017), первый отдает том на второй по протоколу FC по двум путям, на втором сервере создается еще один том и отдается Windows клиенту, том со второго сервера реплицируется на том первого средствами drbd локально (я знаю что можно сделать по другому, вопрос не в этом). после того как заканчивается синхронизация, на мультипас устройстве появляется раздел(например после ребута или multipath -r), и после этого невозможно подцепить drbd к нему(к самому устройству, не разделу)(пробовал подцепить к разделу - подцепляется, но синхронизация не начиналась), можно ли как то сделать что бы не считывались партиции мультипаса? ошибки следующие:

/sbin/drbdsetup attach 1 '/dev/mapper/3520f0c20002d00af' '/dev/zd16p2' flexible --disk-flushes=no --disk-barrier=no --a
l-extents=3389 --c-plan-ahead=0 --resync-rate=4194304K
1: Failure: (104) Can not open backing device

в kern.log есть такое сообщение:

2022-03-18 11:32:58 0 3 localhost kernel:[ 4435.595214] block drbd1: open("/dev/mapper/3520f0c20002d00af") failed with -16

lsblk до синхронизации

sdu                          65:64   0    50G  0 disk  
└─3520f0c20002d00af         253:0    0    50G  0 mpath 
sdv                          65:80   0    50G  0 disk  
└─3520f0c20002d00af         253:0    0    50G  0 mpath 

lsblk после синхронизации

sdu                          65:64   0    50G  0 disk  
├─sdu1                       65:65   0    50G  0 part  
└─3520f0c20002d00af         253:0    0    50G  0 mpath 
  └─3520f0c20002d00af-part1 253:1    0    50G  0 part  
sdv                          65:80   0    50G  0 disk  
├─sdv1                       65:81   0    50G  0 part  
└─3520f0c20002d00af         253:0    0    50G  0 mpath 
  └─3520f0c20002d00af-part1 253:1    0    50G  0 part  

пробовал использовать параметр в multipath.conf, но это не помогло

skip_kpartx		yes

multipath.conf

defaults {
	polling_interval	5
	path_selector		"round-robin 0"
	path_grouping_policy	failover
	flush_on_last_del	yes
	queue_without_daemon	yes
	user_friendly_names	no
	failback                "immediate"
	prio                    "alua"
	skip_kpartx		yes
	no_path_retry            60
	path_checker             "directio"
	rr_weight                "priorities"
       checker_timeout 300
}

blacklist {
	devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st|zd|drbd)[0-9]*"
	devnode "^hd[a-z][[0-9]*]"
}

 , , ,

lignumq
()

Не логинится через ssh если установлен кастомный скрипт для пользователя. Эльбрус

Всем привет, проблема такая, создаю самого простого пользователя, и устанавливаю ему кастомный скрипт при логине(даже самый простой который только выполняет /bin/bash), но при вводе пароля через ssh, пишет ошибку что отказано в доступе. если прописать напрямую оболочку, то есть /bin/bash, то логинится успешно. я пытался прописать этот скрипт как новую оболочку, и тогда логин успешно проходит, но не уверен что это правильно:

echo "/home/user1/test.sh" >> /etc/shells

создание пользователя:

useradd -m user1
password user1
usermod -s /home/user1/test.sh user1

getent passwd user1:

user1:x:1002:1013::/home/user1:/home/user1/test.sh

ошибка при логине такая:

Permission denied, please try again.

 ,

lignumq
()

Как получить MemAvailable через язык Си

Как я могу получить MemAvailable используя функции языка СИ, без парсинга файла /proc/meminfo.

я хотел использовать:

struct sysinfo si;
sysinfo(&si);

но в этой структуре нет такого поля, только free. так же видел что может быть как то можно достать из

sysctl()
или
sysconf()

подскажите может есть еще какие то методы, спасибо!

 ,

lignumq
()

как понять к какой группе принадлежат диски в lvm RAID10

при создании logical volume с типом raid10, как lvm распределяет диски в группы? например у zfs все понятно в выводе zpool status, расписан каждый страйп, как определить это же у lvm, как распределены диски по страйпам?

Перемещено a1batross из development

 , , ,

lignumq
()

Создание кастомного iso образа на ubuntu

Всем привет! В общем ситуация такая, необходимо создать iso образ который будет после прожигаться на CD/DVD или флэшку. Но загвоздка в следующем, что нужно создать в этом образе кастомную систему, то есть со своими утилитами(желательно через apt), ядром и модулями, и при загрузке системы должен автоматом запускаться мой скрипт установки с диалоговыми меню whiptail. я пробовал использовать buildroot, но он не очень гибкий в этом плане, и если самому доставлять пакеты через dpkg -i, то после распаковки initrd ядро крешится, и то есть я получается использую initrd как основную файловую систему, что бы не монтировать CD-диск на самого себя. использую как загрузчик isolinux.

Если кто подскажет идеи как можно реализовать, может другими методами или утилитами, буду очень благодарен!

 , , , ,

lignumq
()

Создание ZVOL занимает много времени после импорта пула.(ZFS)

Ubuntu 18.04 kernel version - 4.19.107 and 5.4.149 ZFS version - 0.8.6

у меня кластер из двух нод. в первой ноде есть пул и на нем два тома, один из которых нагружается через FC, второй - через iSCSI с помощью Iometer. клиент Windows (нагружаемый файл ~ 5 ГБ). при пропадании питания на первой ноде вторая нода импортирует созданный пул, после импорта создание zvol зависает у меня на срок до 20 минут. Я также использую alua scst. иногда один звол может быть создан через 5 минут, а второй через 10 минут

Пробовал изменить свойство sync = disabled или параметр zfs zil_replay_disable = 1 помогло, zvols создаются сразу после импорта пула, но есть вероятность потери данных, что для меня неприемлемо

ПРИМЕЧАНИЕ:с версией ZFS 0.7.13 и ядром 4.19.107 таких проблем не возникало при одинаковых условиях. дайте мне знать, если вам нужно что-то еще

во время зависания я выполняю echo t> /proc/sysrq-trigger и вижу следующую трассировку стека:

2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649611] Call Trace:
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649618]  __schedule+0x28f/0x770
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649628]  schedule+0x36/0xc0
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649634]  schedule_timeout+0x162/0x330
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649643]  ? __next_timer_interrupt+0xc0/0xc0
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649650]  io_schedule_timeout+0x19/0x40
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649659]  __cv_timedwait_common+0x123/0x160 [spl]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649667]  ? wait_woken+0xa0/0xa0
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649721]  zio_wait+0x123/0x270 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649763]  dmu_tx_count_write+0x155/0x1d0 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649801]  dmu_tx_hold_write+0x3c/0x50 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649851]  zvol_replay_write+0x51/0x110 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649903]  ? bil_replay_error.isra.18+0xb0/0xb0 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.649960]  bil_replay_log_record+0xdc/0x1a0 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650022]  bil_parse+0x64e/0x960 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650072]  ? bil_set_logbias+0x10/0x10 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650120]  ? bil_replay_error.isra.18+0xb0/0xb0 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650171]  bil_replay+0xb7/0x120 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650228]  zvol_create_minor_impl+0x7fb/0x820 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650283]  zvol_task_cb+0x2f1/0x5a0 [bfs]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650289]  ? __schedule+0x297/0x770
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650296]  taskq_thread+0x2a6/0x4c0 [spl]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650298]  ? __switch_to_asm+0x40/0x70
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650301]  ? wake_up_q+0x70/0x70
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650307]  ? task_done+0xa0/0xa0 [spl]
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650315]  kthread+0x12f/0x150
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650321]  ? kthread_create_worker_on_cpu+0x70/0x70
2021-11-09 18:37:52 0 4 localhost kernel:[ 3705.650327]  ret_from_fork+0x35/0x40
2021-11-09 18:37:52 0 6 localhost kernel:[ 3705.650333] z_prefetch      S    0 47471      2 0x80084000

my arc_summary:


ARC status:                                                      HEALTHY
        Memory throttle count:                                         0

ARC size (current):                                   < 0.1 %    1.6 MiB
        Target size (adaptive):                       100.0 %  316.3 GiB
        Min size (hard limit):                          0.2 %  512.0 MiB
        Max size (high water):                          632:1  316.3 GiB
        Most Frequently Used (MFU) cache size:         62.3 %  931.5 KiB
        Most Recently Used (MRU) cache size:           37.7 %  563.0 KiB
        Metadata cache size (hard limit):              75.0 %  237.2 GiB
        Metadata cache size (current):                < 0.1 %    1.6 MiB
        Dnode cache size (hard limit):                 10.0 %   23.7 GiB
        Dnode cache size (current):                   < 0.1 %   71.2 KiB

ARC hash breakdown:
        Elements max:                                             190.3k
        Elements current:                             < 0.1 %         67
        Collisions:                                                 1.4k
        Chain max:                                                     1
        Chains:                                                        0

ARC misc:
        Deleted:                                                  199.8k
        Mutex misses:                                                  0
        Eviction skips:                                               69

ARC total accesses (hits + misses):                                10.7M
        Cache hit ratio:                               97.4 %      10.4M
        Cache miss ratio:                               2.6 %     281.0k
        Actual hit ratio (MFU + MRU hits):             97.4 %      10.4M
        Data demand efficiency:                        61.9 %     520.5k
        Data prefetch efficiency:                       0.0 %          5

Cache hits by cache type:
        Most frequently used (MFU):                    94.6 %       9.9M
        Most recently used (MRU):                       5.4 %     560.8k
        Most frequently used (MFU) ghost:               0.0 %          0
        Most recently used (MRU) ghost:                 0.0 %          0
        Anonymously used:                             < 0.1 %        104

Cache hits by data type:
        Demand data:                                    3.1 %     322.2k
        Demand prefetch data:                           0.0 %          0
        Demand metadata:                               96.9 %      10.1M
        Demand prefetch metadata:                     < 0.1 %        104

Cache misses by data type:
        Demand data:                                   70.6 %     198.3k
        Demand prefetch data:                         < 0.1 %          5
        Demand metadata:                               29.4 %      82.6k
        Demand prefetch metadata:                     < 0.1 %        131

DMU prefetch efficiency:                                            4.2M
        Hit ratio:                                    < 0.1 %        831
        Miss ratio:                                   100.0 %       4.2M

L2ARC not detected, skipping section

Solaris Porting Layer (SPL):
        spl_hostid                                                     0
        spl_hostid_path                                      /etc/hostid
        spl_kmem_alloc_max                                       1048576
        spl_kmem_alloc_warn                                        65536
        spl_kmem_cache_expire                                          2
        spl_kmem_cache_kmem_limit                                   2048
        spl_kmem_cache_kmem_threads                                    4
        spl_kmem_cache_magazine_size                                   0
        spl_kmem_cache_max_size                                       32
        spl_kmem_cache_obj_per_slab                                    8
        spl_kmem_cache_obj_per_slab_min                                1
        spl_kmem_cache_reclaim                                         0
        spl_kmem_cache_slab_limit                                  16384
        spl_max_show_tasks                                           512
        spl_panic_halt                                                 0
        spl_schedule_hrtimeout_slack_us                                0
        spl_taskq_kick                                                 0
        spl_taskq_thread_bind                                          0
        spl_taskq_thread_dynamic                                       0
        spl_taskq_thread_priority                                      1
        spl_taskq_thread_sequential                                    4

Tunables:
        dbuf_cache_hiwater_pct                                        10
        dbuf_cache_lowater_pct                                        10
        dbuf_cache_max_bytes                                 10612026016
        dbuf_cache_shift                                               5
        dbuf_metadata_cache_max_bytes                         5306013008
        dbuf_metadata_cache_shift                                      6
        dmu_object_alloc_chunk_shift                                   7
        dmu_prefetch_max                                       134217728
        ignore_hole_birth                                              1
        l2arc_feed_again                                               1
        l2arc_feed_min_ms                                            200
        l2arc_feed_secs                                                1
        l2arc_headroom                                                 2
        l2arc_headroom_boost                                         200
        l2arc_noprefetch                                               1
        l2arc_norw                                                     0
        l2arc_write_boost                                        8388608
        l2arc_write_max                                          8388608
        metaslab_aliquot                                          524288
        metaslab_bias_enabled                                          1
        metaslab_debug_load                                            0
        metaslab_debug_unload                                          0
        metaslab_df_max_search                                  16777216
        metaslab_df_use_largest_segment                                0
        metaslab_force_ganging                                  16777217
        metaslab_fragmentation_factor_enabled                          1
        metaslab_lba_weighting_enabled                                 1
        metaslab_preload_enabled                                       1
        send_holes_without_birth_time                                  1
        spa_asize_inflation                                           24
        spa_config_path                             /etc/zfs/zpool.cache
        spa_load_print_vdev_tree                                       0
        spa_load_verify_data                                           1
        spa_load_verify_metadata                                       0
        spa_load_verify_shift                                          4
        spa_slop_shift                                                 5
        vdev_removal_max_span                                      32768
        vdev_validate_skip                                             0
        zap_iterate_prefetch                                           1
        zfetch_array_rd_sz                                       1048576
        zfetch_max_distance                                      8388608
        zfetch_max_streams                                             8
        zfetch_min_sec_reap                                            2
        zfs_abd_scatter_enabled                                        1
        zfs_abd_scatter_max_order                                     10
        zfs_abd_scatter_min_size                                    1536
        zfs_admin_snapshot                                             0
        zfs_arc_average_blocksize                                   8192
        zfs_arc_dnode_limit                                            0
        zfs_arc_dnode_limit_percent                                   10
        zfs_arc_dnode_reduce_percent                                  10
        zfs_arc_grow_retry                                             0
        zfs_arc_lotsfree_percent                                      10
        zfs_arc_max                                         339584832512
        zfs_arc_meta_adjust_restarts                                4096
        zfs_arc_meta_limit                                             0
        zfs_arc_meta_limit_percent                                    75
        zfs_arc_meta_min                                               0
        zfs_arc_meta_prune                                         10000
        zfs_arc_meta_strategy                                          1
        zfs_arc_min                                            536870912
        zfs_arc_min_prefetch_ms                                        0
        zfs_arc_min_prescient_prefetch_ms                              0
        zfs_arc_p_dampener_disable                                     1
        zfs_arc_p_min_shift                                            0
        zfs_arc_pc_percent                                             0
        zfs_arc_shrink_shift                                           0
        zfs_arc_sys_free                                               0
        zfs_async_block_max_blocks                                100000
        zfs_autoimport_disable                                         1
        zfs_checksum_events_per_second                                20
        zfs_commit_timeout_pct                                         5
        zfs_compressed_arc_enabled                                     1
        zfs_condense_indirect_commit_entry_delay_ms                    0
        zfs_condense_indirect_vdevs_enable                             1
        zfs_condense_max_obsolete_bytes                       1073741824
        zfs_condense_min_mapping_bytes                            131072
        zfs_dbgmsg_enable                                              1
        zfs_dbgmsg_maxsize                                       4194304
        zfs_dbuf_state_index                                           0
        zfs_ddt_data_is_special                                        1
        zfs_deadman_checktime_ms                                   60000
        zfs_deadman_enabled                                            1
        zfs_deadman_failmode                                        wait
        zfs_deadman_synctime_ms                                   600000
        zfs_deadman_ziotime_ms                                    300000
        zfs_dedup_prefetch                                             0
        zfs_delay_min_dirty_percent                                   60
        zfs_delay_scale                                           500000
        zfs_delete_blocks                                          20480
        zfs_dirty_data_max                                    4294967296
        zfs_dirty_data_max_max                                4294967296
        zfs_dirty_data_max_max_percent                                25
        zfs_dirty_data_max_percent                                    10
        zfs_dirty_data_sync_percent                                   20
        zfs_disable_ivset_guid_check                                   0
        zfs_dmu_offset_next_sync                                       0
        zfs_expire_snapshot                                          300
        zfs_flags                                                      0
        zfs_free_bpobj_enabled                                         1
        zfs_free_leak_on_eio                                           0
        zfs_free_min_time_ms                                         100
        zfs_immediate_write_sz                                     32768
        zfs_initialize_value                        16045690984833335022
        zfs_key_max_salt_uses                                  400000000
        zfs_lua_max_instrlimit                                 100000000
        zfs_lua_max_memlimit                                   104857600
        zfs_max_missing_tvds                                           0
        zfs_max_recordsize                                       1048576
        zfs_metaslab_fragmentation_threshold                          70
        zfs_metaslab_segment_weight_enabled                            1
        zfs_metaslab_switch_threshold                                  2
        zfs_mg_fragmentation_threshold                                95
        zfs_mg_noalloc_threshold                                       0
        zfs_multihost_fail_intervals                                  10
        zfs_multihost_history                                          0
        zfs_multihost_import_intervals                                20
        zfs_multihost_interval                                      1000
        zfs_multilist_num_sublists                                     0
        zfs_no_scrub_io                                                0
        zfs_no_scrub_prefetch                                          0
        zfs_nocacheflush                                               0
        zfs_nopwrite_enabled                                           1
        zfs_object_mutex_size                                         64
        zfs_obsolete_min_time_ms                                     500
        zfs_override_estimate_recordsize                               0
        zfs_pd_bytes_max                                        52428800
        zfs_per_txg_dirty_frees_percent                                5
        zfs_prefetch_disable                                           0
        zfs_read_chunk_size                                      1048576
        zfs_read_history                                               0
        zfs_read_history_hits                                          0
        zfs_reconstruct_indirect_combinations_max                   4096
        zfs_recover                                                    0
        zfs_recv_queue_length                                   16777216
        zfs_removal_ignore_errors                                      0
        zfs_removal_suspend_progress                                   0
        zfs_remove_max_segment                                  16777216
        zfs_resilver_disable_defer                                     0
        zfs_resilver_min_time_ms                                    3000
        zfs_scan_checkpoint_intval                                  7200
        zfs_scan_fill_weight                                           3
        zfs_scan_ignore_errors                                         0
        zfs_scan_issue_strategy                                        0
        zfs_scan_legacy                                                0
        zfs_scan_max_ext_gap                                     2097152
        zfs_scan_mem_lim_fact                                         20
        zfs_scan_mem_lim_soft_fact                                    20
        zfs_scan_strict_mem_lim                                        0
        zfs_scan_suspend_progress                                      0
        zfs_scan_vdev_limit                                      4194304
        zfs_scrub_min_time_ms                                       1000
        zfs_send_corrupt_data                                          0
        zfs_send_queue_length                                   16777216
        zfs_send_unmodified_spill_blocks                               1
        zfs_slow_io_events_per_second                                 20
        zfs_spa_discard_memory_limit                            16777216
        zfs_special_class_metadata_reserve_pct                        25
        zfs_sync_pass_deferred_free                                    2
        zfs_sync_pass_dont_compress                                    8
        zfs_sync_pass_rewrite                                          2
        zfs_sync_taskq_batch_pct                                      75
        zfs_trim_extent_bytes_max                              134217728
        zfs_trim_extent_bytes_min                                  32768
        zfs_trim_metaslab_skip                                         0
        zfs_trim_queue_limit                                          10
        zfs_trim_txg_batch                                            32
        zfs_txg_history                                              100
        zfs_txg_timeout                                                2
        zfs_unlink_suspend_progress                                    0
        zfs_user_indirect_is_special                                   1
        zfs_vdev_aggregate_trim                                        0
        zfs_vdev_aggregation_limit                               1048576
        zfs_vdev_aggregation_limit_non_rotating                   131072
        zfs_vdev_async_read_max_active                                 3
        zfs_vdev_async_read_min_active                                 1
        zfs_vdev_async_write_active_max_dirty_percent                 60
        zfs_vdev_async_write_active_min_dirty_percent                 30
        zfs_vdev_async_write_max_active                               10
        zfs_vdev_async_write_min_active                                2
        zfs_vdev_cache_bshift                                         16
        zfs_vdev_cache_max                                         16384
        zfs_vdev_cache_size                                            0
        zfs_vdev_default_ms_count                                    200
        zfs_vdev_initializing_max_active                               1
        zfs_vdev_initializing_min_active                               1
        zfs_vdev_max_active                                         1000
        zfs_vdev_min_ms_count                                         16
        zfs_vdev_mirror_non_rotating_inc                               0
        zfs_vdev_mirror_non_rotating_seek_inc                          1
        zfs_vdev_mirror_rotating_inc                                   0
        zfs_vdev_mirror_rotating_seek_inc                              5
        zfs_vdev_mirror_rotating_seek_offset                     1048576
        zfs_vdev_ms_count_limit                                   131072
        zfs_vdev_queue_depth_pct                                    1000
        zfs_vdev_raidz_implcycle [fastest] original scalar sse2 ssse3 avx2
        zfs_vdev_read_gap_limit                                    32768
        zfs_vdev_removal_max_active                                    2
        zfs_vdev_removal_min_active                                    1
        zfs_vdev_scheduler                                        unused
        zfs_vdev_scrub_max_active                                      2
        zfs_vdev_scrub_min_active                                      1
        zfs_vdev_sync_read_max_active                                 10
        zfs_vdev_sync_read_min_active                                 10
        zfs_vdev_sync_write_max_active                                10
        zfs_vdev_sync_write_min_active                                10
        zfs_vdev_trim_max_active                                       2
        zfs_vdev_trim_min_active                                       1
        zfs_vdev_write_gap_limit                                    4096
        zfs_zevent_cols                                               80
        zfs_zevent_console                                             0
        zfs_zevent_len_max                                           768
        zfs_zil_clean_taskq_maxalloc                             1048576
        zfs_zil_clean_taskq_minalloc                                1024
        zfs_zil_clean_taskq_nthr_pct                                 100
        zil_maxblocksize                                          131072
        zil_nocacheflush                                               0
        zil_replay_disable                                             0
        zil_slog_bulk                                             786432
        zio_deadman_log_all                                            0
        zio_dva_throttle_enabled                                       1
        zio_requeue_io_start_cut_in_line                               1
        zio_slow_io_ms                                             30000
        zio_taskq_batch_pct                                           75
        zvol_inhibit_dev                                               0
        zvol_major                                                   230
        zvol_max_discard_blocks                                    16384
        zvol_prefetch_bytes                                       131072
        zvol_request_sync                                              0
        zvol_threads                                                  32
        zvol_volmode                                                   1

VDEV cache disabled, skipping section

ZIL committed transactions:                                            0
        Commit requests:                                               8
        Flushes to stable storage:                                     8
        Transactions to SLOG storage pool:            0 Bytes          0
        Transactions to non-SLOG storage pool:        0 Bytes          0

 , , , ,

lignumq
()

не удается установить gpg ключи для PPA (No keyserver available)

ubuntu 18.04 выполняю, и в некоторых репах пишется ошибка что нет ключа.

apt update

например вот

Err:4 http://ppa.launchpad.net/linbit/linbit-drbd9-stack/ubuntu bionic InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 34893610CEAA9512
Err:8 http://ppa.launchpad.net/tualatrix/ppa/ubuntu bionic Release
  404  Not Found [IP: 91.189.95.85 80]
Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease [20.8 kB]
Err:5 http://ppa.launchpad.net/adiscon/v8-stable/ubuntu bionic InRelease      
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0F6DD8135234BF2B
Err:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1E9377A2BA9EF27F
Reading package lists... Done

я выполняю и получаю вот что:

[Fri Sep 24 16:09:49 @ ~]:> gpg --keyserver keyring.debian.org --recv 1E9377A2BA9EF27F
gpg: keyserver receive failed: No keyserver available

так же пытался через другие сервера(например keyserver.ubuntu.com), то же самое либо другие ошибки, но при этом и те сервера не пингуются

через другую консоль выполнил и наблюдал следующую команду:

dirmngr --debug-all --daemon --standard-resolver

она во время выполнения получения ключа вывела следующее:

dirmngr[11026.0]:     runtime cached certificates: 0
dirmngr[11026.0]:            trusted certificates: 130 (129,0,0,1)
dirmngr[11026.5]: handler for fd 5 started
dirmngr[11026.5]: DBG: chan_5 -> # Home: /root/.gnupg
dirmngr[11026.5]: DBG: chan_5 -> # Config: [none]
dirmngr[11026.5]: DBG: chan_5 -> OK Dirmngr 2.2.4 at your service
dirmngr[11026.5]: connection from process 11307 (0:0)
dirmngr[11026.5]: DBG: chan_5 <- GETINFO version
dirmngr[11026.5]: DBG: chan_5 -> D 2.2.4
dirmngr[11026.5]: DBG: chan_5 -> OK
dirmngr[11026.5]: DBG: chan_5 <- KEYSERVER --clear hkp://keyring.debian.org
dirmngr[11026.5]: DBG: chan_5 -> OK
dirmngr[11026.5]: DBG: chan_5 <- KS_GET -- 0x1E9377A2BA9EF27F
dirmngr[11026.5]: DBG: dns: getsrv(_pgpkey-http._tcp.keyring.debian.org) -> 0 records
dirmngr[11026.5]: DBG: dns: resolve_dns_name(keyring.debian.org): Success
dirmngr[11026.5]: resolve_dns_addr for 'keyring.debian.org': 'keyring.debian.org' [already known]
dirmngr[11026.5]: resolve_dns_addr for 'keyring.debian.org': 'keyring.debian.org' [already known]
dirmngr[11026.5]: number of system provided CAs: 129
dirmngr[11026.5]: DBG: http.c:connect_server: trying name='keyring.debian.org' port=11371
dirmngr[11026.5]: DBG: dns: resolve_dns_name(keyring.debian.org): Success
dirmngr[11026.5]: can't connect to 'keyring.debian.org': Connection refused
dirmngr[11026.5]: error connecting to 'http://keyring.debian.org:11371': Connection refused
dirmngr[11026.5]: marking host 'keyring.debian.org' as dead
dirmngr[11026.5]: host 'keyring.debian.org' marked as dead
dirmngr[11026.5]: command 'KS_GET' failed: No keyserver available
dirmngr[11026.5]: DBG: chan_5 -> ERR 167772346 No keyserver available <Dirmngr>
dirmngr[11026.5]: DBG: chan_5 <- BYE
dirmngr[11026.5]: DBG: chan_5 -> OK closing connection
dirmngr[11026.5]: handler for fd 5 terminated

сервер этот пингуется

[Fri Sep 24 16:09:24 @ ~]:> ping keyring.debian.org
PING kaufmann.debian.org (82.195.75.107) 56(84) bytes of data.
64 bytes from kaufmann.debian.org (82.195.75.107): icmp_seq=1 ttl=53 time=50.0 ms
64 bytes from kaufmann.debian.org (82.195.75.107): icmp_seq=2 ttl=53 time=47.9 ms
64 bytes from kaufmann.debian.org (82.195.75.107): icmp_seq=3 ttl=53 time=50.4 ms
64 bytes from kaufmann.debian.org (82.195.75.107): icmp_seq=4 ttl=53 time=49.8 ms

sources.list

###### Ubuntu Main Repos
deb http://ru.archive.ubuntu.com/ubuntu/ bionic main universe
deb-src http://ru.archive.ubuntu.com/ubuntu/ bionic main universe

###### Ubuntu Update Repos
deb http://ru.archive.ubuntu.com/ubuntu/ bionic-security main universe
deb http://ru.archive.ubuntu.com/ubuntu/ bionic-updates main universe
deb-src http://ru.archive.ubuntu.com/ubuntu/ bionic-security main universe
deb-src http://ru.archive.ubuntu.com/ubuntu/ bionic-updates main universe

пробовал так же и через apt-key, тоже не добавляет

 , ,

lignumq
()

рестарт демона smbd без прерывания нагрузки на клиенте windows

Всем привет! Такая проблема, есть сервер(кластер), на котором используется смб, сервер введен в домен AD, так как это кластер, иногда требуется выполнять рестарт службы smbd(reload не подойдет), но при этом если идет какое то копирование файла на клиенте(windows), то нагрузка прерывается(что логично), и после нажатия кнопки «Повторить», загрузка файла начинается с самого начала, можно ли сделать как то что бы нагрузка продолжала идти с того момента где прервалась, может нужно настроить клиента как то. клиент подключается как SMBv3 или SMBv2

сервер на ubuntu 18.04. папка смб создана на зфс

smb.conf:

[global]
	workgroup = TEST247
	realm = test247.ru
	security = ads
	auth methods = winbind
	interfaces = 172.16.11.170/24 
	bind interfaces only = yes
	netbios name = SERVER
	encrypt passwords = true
	map to guest = Bad User
	max log size = 300
	dns proxy = no
	socket options = TCP_NODELAY
	domain master = no
	local master = no
	preferred master = no
	os level = 0
	domain logons = no
	load printers = no
	show add printer wizard = no
	log level = 0 vfs:2
	max log size = 0
	syslog = 0
	printcap name = /dev/null
	disable spoolss = yes
	name resolve order = lmhosts wins host bcast
	machine password timeout = 604800
	name cache timeout = 660
	idmap config TEST247 : backend = rid
	idmap config TEST247 : base_rid = 0
	idmap config TEST247 : range = 100000 - 200000
	idmap config * : range = 200001-300000
	idmap config * : backend = tdb
	idmap cache time = 604800
	idmap negative cache time = 60
	winbind rpc only = yes
	winbind cache time = 120
	winbind enum groups = yes
	winbind enum users = yes
	winbind max domain connections = 10
	winbind use default domain = yes
	winbind refresh tickets = yes
	winbind reconnect delay = 15
	winbind request timeout = 25
	winbind separator = ^
	private dir = /var/lib/samba/private
	lock directory = /run/samba
	state directory = /var/lib/samba
	cache directory = /var/cache/samba
	pid directory = /run/samba
	log file = /var/log/samba/smb.%m
	include = /etc/samba/smb-res.conf

testparm:

testparm -s /etc/samba/smb.conf 

Load smb config files from /etc/samba/smb.conf
WARNING: The "auth methods" option is deprecated
WARNING: The "syslog" option is deprecated
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER

конфиг шары: smb-res.conf:

[test109_smb]
	comment = test109_smb share
	path = /config/pool/test109/smb
	browseable = yes
	writable = yes
	inherit acls = yes
	inherit owner = no
	inherit permissions = yes
	map acl inherit = yes
	nt acl support = yes
	create mask = 0777
	force create mode = 0777
	force directory mode = 0777
	store dos attributes = yes
	public = no
	admin users = 
	valid users =  
	write list = 
	read list = 
	invalid users = 
	vfs objects = acl_xattr    
	full_audit:prefix = %S|%u|%I
	full_audit:facility = local5
	full_audit:priority = notice
	full_audit:success = none
	full_audit:failure = none
	shadow: snapdir = .zfs/snapshot
	shadow: sort = desc
	shadow: localtime = yes
	shadow: format = shadow_%d.%m.%Y-%H:%M:%S
	worm: grace_period = 30
	cryptfile: method = grasshopper

 , , ,

lignumq
()

как использовать новое API ETHTOOL_GLINKSETTINGS/ETHTOOL_SLINKSETTINGS API

Всем привет, версия ядра 4.19, хочу получить поддерживаемые ‘link modes’ с помощью API ethtool, моя сетевая карточка подерживает много режимов:

Supported link modes:   1000baseKX/Full 
	                        10000baseKR/Full 
	                        40000baseKR4/Full 
	                        40000baseCR4/Full 
	                        40000baseSR4/Full 
	                        40000baseLR4/Full 
	                        25000baseCR/Full 
	                        25000baseKR/Full 
	                        25000baseSR/Full 
	                        50000baseCR2/Full 
	                        50000baseKR2/Full

и я хочу получать эти режимы из своей программы не используя терминал. вот пример кода:

#define ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32 (SCHAR_MAX)
#define ETHTOOL_DECLARE_LINK_MODE_MASK(name)     \
    uint32_t name[ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32]


int netlink_get_link_speed (const char *dev_name, int *speed)
{
    int sock;
    struct ifreq ifr = {{{0}}};
    //struct ethtool_cmd edata = {0};
    int rc;
    //int err;
    struct {
        struct ethtool_link_settings req;
        __u32 link_mode_data[3 * ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32];
    } ecmd;

/*
    struct ethtool_link_usettings {
        struct {
            uint8_t transceiver;
        } deprecated;
        struct ethtool_link_settings base;
        struct {
            ETHTOOL_DECLARE_LINK_MODE_MASK(supported);
            ETHTOOL_DECLARE_LINK_MODE_MASK(advertising);
            ETHTOOL_DECLARE_LINK_MODE_MASK(lp_advertising);
        } link_modes;
    };

    struct ethtool_link_usettings *link_usettings;
    unsigned int u32_offs;*/

    if (0 == strcmp(dev_name, "lo"))
    {
        *speed = 0;
        return ERR_OK;
    }

    sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
    if (sock < 0) {
        err("Unable to open socket (for location)");
        return ERR_OK;
    }

    memset(&ecmd, 0, sizeof(ecmd));
    ecmd.req.cmd = ETHTOOL_GLINKSETTINGS;

    strcpy(ifr.ifr_name, dev_name);
    ifr.ifr_data = (void *)&ecmd;

    rc = ioctl(sock, SIOCETHTOOL, &ifr);
    if (rc < 0)
    {
        err("Cannot read speed '%s' interface", dev_name);
        close(sock);
        return ERR_SYS_API;
    }

    /* see above: we expect a strictly negative value from kernel.
    */
    if (ecmd.req.link_mode_masks_nwords >= 0
        || ecmd.req.cmd != ETHTOOL_GLINKSETTINGS)
    {
        err("Incorrect kernel answer");
        close(sock);
        *speed = 0;
        return ERR_SYS_API;
    }

    /* got the real ecmd.req.link_mode_masks_nwords,
    * now send the real request
    */
    ecmd.req.cmd = ETHTOOL_GLINKSETTINGS;
    ecmd.req.link_mode_masks_nwords = -ecmd.req.link_mode_masks_nwords;
    rc = ioctl( sock, SIOCETHTOOL, &ifr);
    if (rc < 0)
    {
        err("Cannot read speed '%s' interface", dev_name);
        close(sock);
        return ERR_SYS_API;
    }

    if (ecmd.req.link_mode_masks_nwords <= 0
        || ecmd.req.cmd != ETHTOOL_GLINKSETTINGS)
    {
        err("Incorrect kernel answer");
        close(sock);
        *speed = 0;
        return ERR_SYS_API;
    }
close(sock);
return 0;
}

я выяснил что информация(выставленные биты) вроде как содержатся в переменной link_mode_masks структуры ethtool_link_settings, но как применить не знаю, инфы в интернете не нашел. есть макрос в ethtool.h SUPPORTED_56000baseKR4_Full который путем сравнения битов можно узнать поддерживается этот режим или нет, но он уже устарел, и его просят не использовать, вот выдержка из ethtool.h:

	/* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit
	 * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_*
	 * macro for bits > 31. The only way to use indices > 31 is to
	 * use the new ETHTOOL_GLINKSETTINGS/ETHTOOL_SLINKSETTINGS API.
	 */

так как 50000baseKR2/Full равна 35 в списке enum, то макрос написанный выше уже не подойдет. каким образом тогда можно получить поддерживается данный режим или нет?

 ,

lignumq
()

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