Gvfsd smb грузит процессор

Обновлено: 07.07.2024

Вы, наверное, не раз сталкивались с проблемой, что Ubuntu не видит сеть Windows или Windows не видит сетевую шару Linux. Такая проблема характерна для многих дистрибутивов с окружением Gnome. Ситуация довольно неоднозначная, раньше причиной этому был баг в GVFS, потом появилось ещё несколько осложняющих дело факторов.

В этой статье мы рассмотрим что делать если Ubuntu не видит шары Windows или Samba, как к ним всё таки подключится и можно ли решить проблему, сделать так чтобы Nautilus и Dolphin начали всё таки видеть сетевые ресурсы.

Почему Ubuntu не видит сеть Windows или Samba?

Нужно разобраться почему Ubuntu не может увидеть сеть Windows. Начиная с Windows 10 в компании Microsoft решили отказаться от старого протокола SMB1 и использовать только SMB2 и SMB3. Но в этих протоколах нет сетевого обнаружения. Для сетевого обнаружения в Windows теперь используется новый сервис WS-Discovery. В Nautilus для отображения сетевых ресурсов используется либо avahi либо протокол SMB1. Поэтому увидеть шару Windows не получится, не включив обратно устаревший протокол в реестре. Windows по умолчанию шары Samba тоже видеть не будет, потому что новый WS-Discovery в Samba не поддерживается. Ещё в 2015 году были предложены патчи для Samba добавляющие эту функциональность, но разработчики решили, что оно им не нужно. Поэтому если вы хотите чтобы Windows видела Samba, нужно отдельно установить сервис WSDD.

Но это ещё не всё. Начиная с версии Samba 4.11 разработчики решили, что они ничем не хуже Microsoft и отключили по умолчанию поддержку протокола SMB1. Теперь Nautils и Dolphin перестали видеть не только Windows шары, но и Linux тоже. Решается проблема либо установкой на Samba сервер Avahi, либо включением поддержки старого протокола SMB1 на сервере Samba.

Настойка сервера Samba

1. Включение протокола SMB1

Для того чтобы активировать протокол SMB1 в Samba необходимо добавить такие строчки в /etc/samba/smb.conf в секцию global:

sudo vi /etc/samba/smb.conf

server min protocol = NT1
client min protocol = NT1
min protocol = NT1

После этого надо перезапустить Samba.

sudo systemctl restart smbd
sudo systemctl restart nmbd

Хочу обратить ваше внимание, что у меня всё заработало только после того как я перезагрузил и сервер и клиент. Видимо что-то где-то кэшируется.

2. Настройка имени хоста

Имя хоста вашего компьютера, выводимое командой hostname должно совпадать со значением в файле /etc/hosts и со значением параметра netbios name в файле /etc/samba/smb.conf. Например:

Регистр букв не имеет значения.

3. Установка Avahi

Если предыдущий способ не поможет, то установка Avahi должна помочь. Samba не будет отображаться в сетях Windows, но зато появится в сетевом окружении в Nautilus. Для установки Avahi выполните:

sudo apt install avahi-daemon avahi-utils

После этого сервис стоит запустить и добавить в автозагрузку:

sudo systemctl enable avahi-daemon

sudo systemctl start avahi-daemon

Проверить доступные сервисы можно командой:

Среди них должна быть ваша шара, обозначенная как Microsoft Windows Network local.

4. Установка WSDD

Сервис WSDD нужен для того чтобы вашу шару было видно из Windows. Можно использовать сервис wsdd2 из этого репозитория. Его надо собрать из исходников, но в этом нет ничего сложного. Сначала склонируйте репозиторий:

Затем перейдите в папку с проектом:

Выполните make для сборки:

Затем установите программу, она только скопирует исполняемый файл и службу systemd в нужные директории:

sudo make install

Осталось запустить службу:

sudo systemctl daemon-reload

sudo systemctl enable --now wsdd2

Теперь Windows сможет видеть ваш сервер Samba. Таким образом если всё сделать правильно, то все всех будут видеть.

Настройка Windows

1. Общий доступ в Windows

Убедитесь, что в Windows общий доступ был включён. Если общий доступ отключен, то вы не сможете никак получить доступ к ресурсам. Откройте проводник и перейдите в пункт Сеть. Если сетевой доступ отключён, то система выдаст соответствующее предупреждение:


Кликните по нему чтобы включить общий доступ, затем выберите Включить сетевое обнаружение и общий доступ к файлам.


После этого система ещё раз спросит надо ли разрешить доступ для всех общественных сетей. Ответьте утвердительно:


После этого вы сможете получить доступ к общим ресурсам этого компьютера.

2. Включение SMB1 в Windows

Для того чтобы включить поддержку протокола SMB1 в Windows 10 откройте поиск и наберите Включение компонентов. Затем откройте утилиту Включение и выключение компонентов Windows:


Дальше найдите пункт SMB1.0 CIFS File Sharing Support и установите напротив него галочку:


Затем необходимо перезапустить компьютер:


После этого Ubuntu начнёт видеть вашу шару Windows и вы сможете к ней подключится.

Настройка клиента

1. Установить Samba

Если файловый сервер Samba у вас не установлен, то его надо установить для того чтобы был создан файл /etc/samba/smb.conf с параметрами по умолчанию. Они потом будут использоваться библиотекой libsmbclient и самой утилитой smbclient, которую вы можете применять для тестирования. Для установки выполните:

sudo apt install samba

Проверьте конфигурационный файл Samba на ошибки с помощью такой команды:


2. Рабочая группа

По умолчанию используется рабочая группа WORKGROUP. Убедитесь, что ваша рабочая группа имеет именно это имя, также убедитесь, что в /etc/samba/smb.conf задано правильное имя рабочей группы в параметре workgroup:

sudo vi /etc/samba/smb.conf


3. Версия протокола

В современных системах Windows для общего доступа к папкам используется файловая система CIFS, использующая современные версии протоколов SMB2 и SMB3. Эти протоколы не поддерживают обзор доступных общих папок так, как это ожидает получить Nautilus. Для того чтобы всё работало надо использовать старый протокол NT1. Чтобы его включить добавьте параметр client max protocol после параметра workgroup:

client max protocol = NT1


После этого сохраните изменения и перезагрузите компьютер и проверьте.

4. Правильный порядок разрешения имён

name resolve order = bcast lmhosts host wins


5. Не тот интерфейс

Если в вашем компьютере несколько сетевых интерфейсов, возможно smbclient пытается использовать не тот интерфейс. Чтобы посмотреть список интерфейсов используйте команду:


Затем найдите в /etc/samba/smb.conf параметр interface и замените в его значении eth0 на имя вашего интерфейса, который обеспечивает связь с нужной локальной сетью. Например на enp0s8:

interfaces = 127.0.0.0/8 enp0s8


После этого надо перезапустить службы Samba:

sudo systemctl restart smbd
sudo systemctl restart nmbd

6. Отладка

Если сеть Windows всё ещё не работает, вы можете попытаться отлаживать GVFS чтобы понять где именно возникает проблема и в чём её суть. Для этого надо завершить текущий сервер GVFS и запустить свой в терминале с включённой опцией отладки. Для этого выполните:

pkill gvfs; pkill nautilus

GVFS_DEBUG=all GVFS_SMB_DEBUG=10 $(find /usr/lib* -name gvfsd 2>/dev/null) --replace 2>&1 | tee gvfsd.log

7. Проблема в GVFS

Баг в GVFS, о котором я писал выше наблюдался для Samba версии 4.8 и ниже. Если сервер поддерживает протокол более высокого уровня, то клиент пытается использовать этот протокол, например SMB2 или SMB3, но на этих протоколах не работает отображение доступных ресурсов. Если у вас именно эта проблема, то для полного решения придется ждать обновления или использовать обходное решение описанное ниже.

8. Подключение напрямую

Даже если у вас не работает обнаружение сетевых ресурсов Windows, вы все ещё можете подключится к нужному компьютеру и получить с него файлы. Откройте пункт Другие места на левой панели Nautilus. Внизу окна вы увидите надпись Подключится к серверу введите smb://адрес_сервера в поле слева и нажмите Enter:

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

Введите пароль и вы увидите доступные общие папки:


Выводы

Если всё будет сделано правильно то Linux увидит вашу шару Windows или Samba:

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

После установки сервера (переустановки) всё работало стабильно с загрузкой процессора не более 20%, через неделю, при практически не увеличившейся нагрузке загруженность процессора стала 98% и не опускается.
Что это может быть и как лечить? Не хотелось бы переходить на ftp.
К тому же хотелось приделать пару программных RAID.
Заранее благодарен.

(kapa @ Пятница, 24 Июня 2005, 14:26) писал(а): К тому же хотелось приделать пару программных RAID.

Информацию терять жалко. Много редкого и интересного.

(kapa @ Пятница, 24 Июня 2005, 15:17) писал(а): Информацию терять жалко. Много редкого и интересного. (kapa @ Пятница, 24 Июня 2005, 15:17) писал(а): Информацию терять жалко. Много редкого и интересного.

Нет. Зеркалирование и аппаратное можно было бы сделать, но пока не ликвидно
Хочется пятый RAID.
Но смысл даже не в этом. RAID пока не возможен, т.к. сервак тупит и захлёбывается, а юзеры привыкли к Sambе. Вот и хочу узнать - полюбому на ftp переводить, или может в чём другом проблема?

млин! тяжко! инфы побольше!
дистрибутив?
ядро?
версия самбы?
вывод: top, free, ps ax
df -h
/var/log/message и syslog (если, конечно, настроен)
сколько людей цепляется Для Dr. Evil:
Ты бы ещё вывод "echo 'hello world'" попросил бы. (Dr. Evil @ Пятница, 24 Июня 2005, 18:02) писал(а): млин! тяжко! инфы побольше!
дистрибутив?
ядро?
версия самбы?
вывод: top, free, ps ax
df -h
/var/log/message и syslog (если, конечно, настроен)
сколько людей цепляется

Red Hat Linux release 9 (Shrike)
Kernel 2.4.30
Самба родная, которая с ним шла.

up 7 days, 2:39, 2 users, load average: 186,55, 184,08, 181,72
496 processes: 488 sleeping, 5 running, 0 zombie, 0 stopped
CPU states: 21,2% user, 78,7% system 0,0% nice, 0,0% iowait, 0,0% idle
Mem: 903464 av, 897492 used, 5972 free, 0k shrd, 10312k buff
47720k active, 253124 inactive
Swap: 3148732 av, 0k used, 3148732k free 295440k cached

PID__USER_PRI_NI_SIZE__RSS__SHARE__STAT__%CPU__%MEM_TIME_CPU_CO
1147_root__2___0__2044__2044__1884___S______99,9___0,2__5773m_0_smbd
29178_root_16__0__1596__1596__884____R________0,7__0,1___0:03__0_top

и далее ничего существенного

27910___?_____S_____2:33__smbd__-D
и так далее 3 экрана
28953__tty2____S_____0:00_-bash
28999__tty2____S_____0:00 /usr/bin/mc -P /tmp/mc-root/mc.pwd.блаблабла
29000__?______S_____0:00 cons.saver /dev/tty2
29002_pts/1____S_____0:00 bash -rcfile__.bashrc
и далее опять про SMBD экран

/dev/hda1 - система
/dev/hda3 - данные
none_______________442M__0___442M__0%__/dev/shm
/dev/hdb1 - данные
/dev/sda1 - данные
и т. д. до
/dev/sdh1

В этой статье описывается, как устранить проблему высокой загрузки ЦП на сервере SMB.

Высокая загрузка ЦП из-за проблем с производительностью хранилища

служба хранилища проблемы с производительностью могут привести к высокой загрузке цп на серверах SMB. Перед устранением неполадок убедитесь, что на сервере SMB установлен последний накопительный пакет обновления, чтобы устранить все известные проблемы в srv2.sys.

В большинстве случаев вы заметите проблемы высокой загрузки ЦП в системном процессе. Прежде чем продолжать, используйте обозреватель процессов, чтобы убедиться в том, что srv2.sys или ntfs.sys потребляет чрезмерные ресурсы ЦП.

сценарий сети областей служба хранилища (SAN)

На уровнях статистических вычислений общая производительность сети SAN может показаться неправильной. Однако при работе с проблемами SMB время ответа отдельного запроса — это наиболее важное значение.

Как правило, эта проблема может быть вызвана некоторой формой очереди команд в сети SAN. вы можете использовать Perfmon для записи трассировки Microsoft-Windows-storport и анализа, чтобы точно определить скорость реагирования хранилища.

Задержка ввода-вывода диска

Задержка ввода-вывода диска — это мера задержки между созданием и завершением запроса на ввод-вывод на диск.

Задержка ввода-вывода, измеряемая в PerfMon, включает в себя все время, затраченное на аппаратные уровни, а также время, затраченное на очередь драйвера порта Майкрософт (Storport.sys для SCSI). Если запущенные процессы создают большую очередь Storport, то измеряемая задержка увеличивается. Это связано с тем, что операции ввода-вывода должны ожидать перед отправкой на аппаратные уровни.

В PerfMon следующие счетчики показывают задержку физического диска:

"Объект производительности физического диска"- > "СР. время чтения с диска (сек.)" — показывает среднюю задержку чтения.

"Объект производительности физического диска"- > "среднее время записи на диск (сек.)" — показывает среднюю задержку записи.

"Объект производительности физического диска"- > "среднее время обращения к диску (сек.)" — показывает Объединенные средние значения для операций чтения и записи.

Экземпляр " _ Total" является средним временем задержек для всех физических дисков на компьютере. Каждый из других экземпляров представляет отдельный физический диск.

Не путайте эти счетчики со средним объемом обращений к диску/с. Это совершенно разные счетчики.

Windows стек служба хранилища:

в этом разделе приводится краткое описание Windows служба хранилища стеке.

когда приложение создает запрос ввода-вывода, оно отправляет запрос в подсистему Windows ввода-вывода в верхней части стека. Затем операции ввода-вывода перемещаются вниз по стеку в аппаратную подсистему Disk. Затем ответ перемещается на все способы резервного копирования. Во время этого процесса каждый слой выполняет свою функцию, а затем передает операции ввода-вывода на следующий слой.

Поток стека

PerfMon не создает никаких данных о производительности в секунду. Вместо этого он потребляет данные, предоставляемые другими подсистемами в Windows.

Для объекта производительности "физический диск" данные фиксируются на уровне "Диспетчер секций" в стеке хранилища.

При измерении счетчиков, упомянутых в предыдущем разделе, мы измеряем все время, затрачиваемое запросом ниже уровня "Диспетчер секций". Когда Диспетчер секций отправляет запрос на ввод-вывод по стеку вниз, он отмечает время. При возврате мы опять отметкам времени снова и вычислите разницу во времени. Разница во времени — это задержка.

Это делается для учета времени, затраченного на выполнение следующих компонентов:

Драйвер класса — управляет типом устройства, например дисками, лентами и т. д.

Драйвер порта — управляет транспортным протоколом, таким как SCSI, FC, SATA и т. д.

драйвер минипорта устройства — это драйвер устройства для служба хранилища адаптера. Он предоставляется изготовителем устройств, например RAID-контроллером, и FC HBA.

Дисковая подсистема — включает все, что находится ниже драйвера минипорта устройства. это может быть так же просто, как кабель, подключенный к одному физическому жесткому диску, или сложнее, чем служба хранилищаная сеть. Если проблема определена как вызванная этим компонентом, можно обратиться к поставщику оборудования за дополнительными сведениями об устранении неполадок.

Очередь дисков

Существует ограниченный объем операций ввода-вывода, которые дисковая подсистема может принимать в определенный момент времени. Избыточный ввод-вывод ставится в очередь до тех пор, пока диск не сможет снова принять ввод-вывод. Время, затрачиваемое вводом-выводом в очереди под уровнем "Диспетчер секций", учитывается в измерениях задержки физического диска системного монитора. Так как очереди увеличиваются крупнее, а операции ввода-вывода должны ждать больше времени, измеряемая задержка также растет.

Ниже уровня "Диспетчер секций" имеется несколько очередей, как показано ниже.

Очередь драйвера порта Майкрософт-порт/порт/Storport

Очередь драйверов устройств, предоставленная изготовителем — драйвер устройства OEM

Очереди оборудования, такие как очередь контроллера диска, очередь коммутаторов SAN, очередь контроллера массива и очередь жестких дисков

Мы также будем учитывать время, затрачиваемое на то, что жесткий диск тратит на активное обслуживание операций ввода-вывода, и время, затрачиваемое на выполнение запроса на возврат к уровню "Диспетчер секций", помеченному как завершенный.

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

Если драйвер минипорта устройства не может принимать дополнительные операции ввода-вывода из-за того, что его очередь или очереди оборудования ниже, то мы начнем накопление операций ввода-вывода в очереди драйвера порта. Размер очереди драйвера Microsoft Port ограничивается только объемом доступной системной памяти (ОЗУ) и может увеличиваться очень большим. Это приводит к большой измеряемой задержке.

Высокая загрузка ЦП, вызванная перечислением папок

Чтобы устранить эту проблему, отключите функцию перечисления на основе доступа (ABE).

Чтобы определить, какие общие ресурсы SMB включены в параметр ABE, выполните следующую команду PowerShell:

Unrestricted = ABE отключен.
Акцессбасе = ABE включен.

Можно включить ABE в Диспетчер сервера. перейдите к общим папкам файлов и служба хранилища служб > , щелкните общую папку правой кнопкой мыши, выберите пункт свойства, перейдите к Параметры а затем выберите включить перечисление на основе доступа.

Параметры пользовательского интерфейса

Кроме того, можно уменьшить абелевел до более низкого уровня (1 или 2), чтобы повысить производительность.

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

Администрация форума призывает всех пользователей писать правильно названия дистрибутивов, компаний, программ, термины и пр., а так же имена и фамилии.

Например: Arch, Debian, Fedora, Windows, AMD, Baobab, NVidia, , т.е. без транслитерации, а в именах и фамилиях давать её в скобках — Linus Torvalds (Линус Торвальдс)

Это обусловлено настройкой поисковиков по правильным названиям, которые облегчают наши же поиски информации в интернете.

1 Тема от BoDun 2015-06-17 13:36:38

http://storage1.static.itmages.ru/i/15/0617/s_1434536811_1537861_bb8c911f83.jpg

Доброго времени суток.
Решил опробовать MATE (старый добрый GNOME2)
Всё вроде бы хорошо, да вот файловый менеджер Caja не хочет работать с smb протоколом, говорит, что в глаза его не знает и никогда не видел.

Собственно вопрос, какой пакет ему нужен или где посмотреть вообще?
Mate ставился с репозитория, версия 1.6.2
Caja 1.6.3
Samba Client установлен
Dolphin по сети гуляет и реагирует адекватно.

2 Ответ от mimo 2015-06-17 19:10:09

MATE имеет к Gnome2 такое же отношение как морские свинки к свиньям и морю.

3 Ответ от BoDun 2015-06-17 20:06:26

mimo, суть вопроса не в том какое отношение имеет мате к гному2
Кроме того, либо вы не видели гном2, либо не видели и не слышали мате

4 Ответ от reuz 2015-06-17 20:22:23

BoDun, Собственно вопрос, какой пакет ему нужен. ?

LXDE Mаgeia 7.1-x86_64 мать GA-MA78GM-S2H (Radeon HD3200)

5 Ответ от mimo 2015-06-17 21:01:43

BoDun, я видел и слышал абсолютно всё, что относится к Линуксу.

6 Ответ от xxblx 2015-06-17 23:12:50

MATE имеет к Gnome2 такое же отношение как морские свинки к свиньям и морю.

MATE - форк GNOME2. Так что отношение вполне прямое.
MATE и GNOME2 - это одна кодовая база и по сути один проект, просто сменился разработчик. Был GNOME Foundation, стал энтузиаст арчевод и компания, взяли исходники брошенного проекта, переписали зависимости и продолжили развитие

BoDun, покажи

7 Ответ от BoDun 2015-06-17 23:16:38 (2015-06-17 23:21:59 отредактировано BoDun)

xxblx,

Установил пакет gvfs-fuse
Результат прежний, при этом, на основном компе и нетбуке так же поставил MATE, так странность в том, что там то caja с самбой работает..

8 Ответ от mimo 2015-06-17 23:34:35

xxblx, Вы действительно верите, что у меня нет Интернета?

9 Ответ от Zomby 2015-06-17 23:34:54 (2015-06-17 23:35:21 отредактировано Zomby)

У меня однажды была трабла на магее 4 с доступом по smb к виндовым серверам, пока не установил пакет samba-winbind (правда севаки в домене были, не знаю важно ли это).

Mageia6, KDE, LXQt, x86_64.
Человек человеку - волк, а зомби зомби - зомби!

10 Ответ от BoDun 2015-06-17 23:39:02 (2015-06-17 23:49:01 отредактировано BoDun)

Zomby, сейчас попробую
Одно не понял, почему на двух железках всё нормально?
До мате там раньше lxde были, а на текущем компе (с которого пишу) KDE
зы: удивился когда заметил, что кеды грузятся чуть быстрее секунды на 2-4, чем мате

mimo, а по теме можете дать дельное или только просто поболтать?

Zomby, установил, всё так же в сеть не пускает.
Интересен факт, что комп и файловую помойку видит - сканит, а вот зайти не может.
зы: виндовых серверов нету, есть основной комп у которого расшарены пара каталогов и файловая помойка только.

Читайте также: