The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проблема с блокировками файлов, !*! turux, 30-Окт-14, 00:11  [смотреть все]
хай!

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

есть 3 компа, все linux (centos6) - samba-server, client1, client2

на samba-server поднята samba (samba-3.6.23 из centos репа). вот конфиг:

[global]
    workgroup = MYGROUP
    server string = Samba Server Version %v
    netbios name = SAMBA
    log level = 0 locking:6
    log file = /var/log/samba/log.%m
    max log size = 50
    security = user
    passdb backend = tdbsam
    ;kernel oplocks = No

[public]
    comment = Public Stuff
    path = /public
    public = yes
    writable = yes
    printable = no
    write list = user1

        ;oplocks = No
        ;posix locking = No
        ;level2 oplocks = No
    ;veto oplock files = /*.dat/


на обоих клиентах шара смонтирована вот так: mount.cifs //samba/public /samba -o username=user1

затем на client1 я даю команду: cp bigfile.dat /samba
файл начинает копироваться на шару и в процессе копирования на client2 я даю команду:
mv /samba/bigfile.dat /home

и происходит следующее:
на client2) файл перемещается в /home, при этом он "битый", поскольку client1 ещё не успел докопировать его.
на client1) ещё какое то время тупит, "копируя" файл, хотя на шаре файла уже нет.


я как только не игрался опциями lock - никак не получается добиться блокировки файла на время копирования.

поэтому вопрос, можно ли на самбе реализовать следующее поведение: клиент1 начинает копировать файл, клиент2 даёт команду на перемещение файла, но эта команда задерживается на выполнение пока не докопируется файл клиентом1.

  • Проблема с блокировками файлов, !*! izyk, 11:46 , 30-Окт-14 (1)
    > хай!

    oplocks = No
    Должен работать.

    Может еще
    locking = yes

    Хотя, странно.

  • Проблема с блокировками файлов, !*! izyk, 12:53 , 30-Окт-14 (2)
    • Проблема с блокировками файлов, !*! turux, 22:43 , 30-Окт-14 (3)
      >> хай!
      >  unix extensions = No

      [global]
              workgroup = MYGROUP
              server string = Samba Server Version %v
              netbios name = SAMBA4
              log level = 0 locking:6
              log file = /var/log/samba/log.%m
              max log size = 50
              security = user
              passdb backend = tdbsam

              unix extensions = No

      [public]
              comment = Public Stuff
              path = /public
              public = yes
              writable = yes
              printable = no
              write list = user1

              oplocks = No
              level2 oplocks = No


      не помогает, файл не блокируется :(

      • Проблема с блокировками файлов, !*! izyk, 02:05 , 31-Окт-14 (4)
        ?
        Попробуйте так:
        flock -e /samba/xlock cp bigfile.dat /samba
        flock -e /samba/xlock mv /samba/bigfile.dat /home

        Если поможет, тогда хорошо.

        И так:
        mount.cifs //samba/public /samba -o username=user1,cache=strict,nobrl

        • Проблема с блокировками файлов, !*! turux, 16:54 , 31-Окт-14 (5)
          > ?
          > Попробуйте так:
          > flock -e /samba/xlock cp bigfile.dat /samba
          > flock -e /samba/xlock mv /samba/bigfile.dat /home
          > Если поможет, тогда хорошо.
          > И так:
          > mount.cifs //samba/public /samba -o username=user1,cache=strict,nobrl

          вообще всё странно.

          я попробовал пока убрать самбу и заменил её на windows 2008 r2 сервер. Хотелось посмотреть как поведёт себя в такой ситуации виндовс сервер.

          Результат:
          Я монтировал на линукс клиентах способами:
          1) mount.cifs //win2008/public /win/ -o username=user1
          2) mount.cifs //win2008/public /win -o username=user1,cache=strict,nobrl
          как показала практика разницы - никакой.


          предложенные вами команды
          flock -e /win/xlock cp bigfile.dat /samba
          flock -e /win/xlock mv /win/bigfile.dat /home
          я проверил раз 8.

          в половине случаев я получал на клиенте2 (там где идёт операция mv) ошибку:

                     mv: невозможно удалить «bigfile.dat»: Текстовый файл занят

          в другой половине поведение было как и прежде - файл перемещался в /home и был битым :((




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру