# Сетевые файловые системы

## ba

Есть задача расшарить хоумы с одной машины на другую по сети с публиным доступом. nfs не подходит так как не имеет аутентификации (поднимать керберос для такой тривиальной задачи или делать туннель просто влом), а на samba мне не удается получить скорость больше 5МБайт/сек на гигабитной сети... Может кто уже сталкивался с подобной задачей?

----------

## sa10

```
http://gentoo-wiki.com/Network_File_Transfer_Protocols_and_Filesystems#SHFS
```

или вот sys-fs/sshfs-fuse

```
http://gentoo-wiki.com/HOWTO_FTP_Mount
```

----------

## ba

 *sa10 wrote:*   

> или вот sys-fs/sshfs-fuse
> 
> ```
> http://gentoo-wiki.com/HOWTO_FTP_Mount
> ```
> ...

 

это все не подходит изза тормознутости, глюков с файловыми локами, сокетами и др спец файлами...

----------

## sa10

 *Quote:*   

> это все не подходит изза тормознутости

 

Если на гигабитной сети 5 мб\сек, то вероятно железо кривое. 

Необязатьельно сетевое, может там диск больше не может отдавать  :Smile: 

У меня самба в 100м/бит сетке отдается на 7-8Мб/сек. 

А sshfs-fuse, специально только что проверил - 8,7 Мб/сек

nfs у меня не намного больше (9-10 Мб/сек) но это уже физический предел для 100 мбит 

Тормознутостью это никак нельзя назвать.

Железо у меня хуже некуда - RTL8139 и самые дешевые коммутаторы Celan

И какие локи для файлов в домашних каталогах?

Или все юзеры с одним домашним каталогом... ?

Без локов будет если попытаться на ocfs2 это хранить, иначе как непротиворечивость обеспечить?

----------

## ba

 *sa10 wrote:*   

>  *Quote:*   это все не подходит изза тормознутости 
> 
> Если на гигабитной сети 5 мб\сек, то вероятно железо кривое. 
> 
> Необязатьельно сетевое, может там диск больше не может отдавать :)

 

1) между этими же тачками nfs дает 20-30

2) виндовые тачки с этой самбы тоже замечательно качают...

 *sa10 wrote:*   

> У меня самба в 100м/бит сетке отдается на 7-8Мб/сек. 

 

это примоунченная по cifs?

 *sa10 wrote:*   

> А sshfs-fuse, специально только что проверил - 8,7 Мб/сек
> 
> nfs у меня не намного больше (9-10 Мб/сек) но это уже физический предел для 100 мбит 
> 
> Тормознутостью это никак нельзя назвать.

 

ага, а теперь замерь время копирования например /usr/portage (без дистфайлов) по nfs и по sshfs, разница будет думаю на порядок...

 *sa10 wrote:*   

> И какие локи для файлов в домашних каталогах?

 

ну про локи это я к примеру...  а вот сокеты на sshfs/ftpfs точно держать нельзя, а они нужны...

----------

## sa10

 *ba wrote:*   

> 
> 
> 1) между этими же тачками nfs дает 20-30
> 
> 

 

Если сетка может прокачать такой поток для NFS, то почему самба тормозит?

Надо искать узкое место.

Разница может быть в типе пакетов. NFS умеет с UDP и TCP работать, самба только TCP. Размер пакета может влиять, но не так сильно.

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

ifconfig о битых пакетах не говорит?

Чем мерим скорость? Что говорит о скорости iptraf?

Можно попробовать зафлудить сеть пингом с разным размером пакетов (ping -f s32000 hostname.org) и посмотреть в iptraf на приемном конце скорость потока.

Можно поиграть с MTU на адаптерах.

Нет ли в сети виланов? Карты 3Com и сами комутаторы могут на виланах пакеты крошить.

Могут коммутаторы глючить.

У меня на 100битной сетке были проблемы аппаратной нестыковки конкретной серии сетевых адаптеров с конкретными моделями коммутаторов. Симптом - в одну сторону качает, а обратно пакеты крошит или вообще затыкается. В другой комбинации оборудования все ОК.

 *Quote:*   

> ага, а теперь замерь время копирования например /usr/portage (без дистфайлов) по nfs и по sshfs, разница будет думаю на порядок...

 

Само собой, это же юзерспейс драйвер. Ядерный модуль shfs должен работать лучше, он удаленную файловую систему непосредственно в VFS отображает. 

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

----------

## sa10

 *ba wrote:*   

> 
> 
> 2) виндовые тачки с этой самбы тоже замечательно качают...
> 
> 

 

Это забавно  :Smile: 

Я бы ткнул LiveCD с другим дистром, лучше постарше и проверил тоже самое.

Может версия ядра, его конфигурация, версия драйверов для сетевух.

Еще можно посмотреть в ethereal чем отличаются пакеты с винды

----------

## ba

С железом у меня все в порядке точно, да и причем тут оно если nfs, ftp итд выдают нормальные скорости. А узкое место как я пытался указать - это ядерный модуль для cifs и собственно где-то в мейллистах натыкался на объяснение что причина в том что он не умеет работать в асинхронном режиме...

 *sa wrote:*   

> У меня самба в 100м/бит сетке отдается на 7-8Мб/сек.

  это кстати через cifs?

----------

## sa10

 *ba wrote:*   

> это кстати через cifs?

 

Пришлось специально смонтировать и проверить. Midnight Commander говорит - 7,4 мб/сек  :Smile: 

iptraf

```

Incoming rates:   62651.5 kbits/sec                                                                                                     │

│                    5452.6 packets/sec

```

Опции монтирования использовал по умолчанию:

```
//main/distr on /mnt/floppy type cifs (rw,mand)
```

На сервере Samba 3.0.20b-3.4-SUSE

На моей машине 

mount.cifs version: 1.10

[ebuild   R   ] net-fs/samba-3.0.22-r3  USE="acl cups ldap mysql pam python readline xml -async -automount -doc -examples -kerberos -ldapsam -libclamav -oav -postgres -quotas (-selinux) -swat -syslog -winbind" 0 kB

ядро 2.6.17-gentoo-r8

сетевуха на моем конце nVidia Corporation CK8S Ethernet Controller

на сервере Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

Speed: 100Mb/s

Duplex: Full

Никакого тюнинга не делалось, почти все по умолчанию.

Подозреваю, что в этом и вся хитрость   :Wink: 

----------

## sa10

 *ba wrote:*   

>  причина в том что он не умеет работать в асинхронном режиме...
> 
> 

 

Сомнительно...

Самба моя собрана с USE="-async", это значение по умолчанию.

Однако мы наблюдаем удовлетворительные показатели производительности .

Если сетевой или любой другой файловый ресурс монтируется в VFS, то (по умолчанию) вся буферизация выполняется на уровне VFS.

Буферизацию VFS для конкретной файловой системы можно блокировать опцией монтирования "sync".

Даст ли заметный эффект двойная буферизация? Вряд ли. 

Я подозреваю, что асинхронный режим нужен самбе если пользуешся smbclient.

----------

## sa10

Вот еще инфа модуля cifs о размерах буферов  и т.п.

```
modinfo cifs

filename:       /lib/modules/2.6.17-gentoo-r8/kernel/fs/cifs/cifs.ko

author:         Steve French <sfrench@us.ibm.com>

license:        GPL

description:    VFS to access servers complying with the SNIA CIFS Specification e.g. Samba and Windows

version:        1.43

vermagic:       2.6.17-gentoo-r8 preempt mod_unload gcc-4.1

depends:

srcversion:     3E7172305CDDC0B8EFC1119

parm:           cifs_max_pending:Simultaneous requests to server. Default: 50 Range: 2 to 256 (int)

parm:           cifs_min_small:Small network buffers in pool. Default: 30 Range: 2 to 256 (int)

parm:           cifs_min_rcv:Network buffers in pool. Default: 4 Range: 1 to 64 (int)

parm:           CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (int)
```

Как я понимаю в smb.conf есть параметры асинхронного буфера, у меня они равны 0.

        aio read size = 0

        aio write size = 0

Кроме того еще эта хрень ...

allocation roundup size = 1048576

Но на все это можно забить, я думаю, что ты перемудрил где то...   :Rolling Eyes: 

----------

## ba

 *sa10 wrote:*   

>  *ba wrote:*   это кстати через cifs? 
> 
> Пришлось специально смонтировать и проверить. Midnight Commander говорит - 7,4 мб/сек :)

 

сегодня тестанул еще разок - вобщем 10-12 через cifs получалось, но когда совсем нет никакой сетевой нагрузки, а nfs и ftp при этом 30-35 выдавали, винда с самбы тоже на 30 качала... тестанул еще и на 100мбит - получал 5-7 при 10-11 на nfs...

тоже ничего не тюнил... и проблема явно в клиенте... похоже придется керберос все-таки поднять...

----------

