Dropbox как служба windows server 2016

Заметки инженера.

вторник, 24 апреля 2012 г.

Установка DropBox как сервиса в Windows

1) Заходим на сервер с административными правами, можно через удаленный раб. стол.

2) Скачиваем Dropbox с сайта и устанавливаем для всех пользователей в папку C:\Program Files. Для этого запускаем инсталлятор с ключем /D=C:\Program Files. Например:

3) После установки необходимо выйти из Dropbox. В system tray делаем exit.

4) Далее скачиваем с сайта Microsoft программы instsrv.exe и srvany.exe. Это необходимо для установки программы, как сервиса. Программы входят в пакет Windows Server 2003 Resource Kit Tools. После установки пакета эти программы можно найти в c:\Program Files\Windows Resource Kits.

5) Далее необходимо скопировать файлы instsrv.exe и srvany.exe в C:\Program Files\Dropbox\bin.

6) Теперь в командной строке «C:\Program Files\Dropbox\bin\instsrv.exe» Dropbox «C:\Program Files\Dropbox\bin\srvany.exe». Для 2008 сервера команда:
sc create Dropbox binPath= «C:\Program Files\Dropbox\bin\srvany.exe» DisplayName= «Dropbox»

7) Далее изменения в реестр
reg ADD HKLM\SYSTEM\CurrentControlSet\Services\Dropbox\Parameters /v Application /d «C:\Program Files\Dropbox\Bin\Dropbox.exe».

8) И еще
reg ADD HKLM\SYSTEM\CurrentControlSet\Services\Dropbox\Parameters /v AppDirectory /d «C:\Program Files\Bin\Dropbox».

9) Удаляем ярлык из автозапуска.
del «C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Dropbox.lnk»
10) Заходим в службы. В настройках запуска Dropbox устанавливаем запуск от имени того пользователя, от которого производили установку и настройку. Этот пользователь должен обладать административными правами

11) В завершении стартуем службу:
net start Dropbox.

12) Устанавливаем полные права на папку с Dropbox для всех пользователей.

Dropbox как служба windows server 2016

Специфика работы Windows-серверов за исключением терминальных — будь то домашний сервер, или корпоративный — такова, что наличие на них открытых пользовательских сессий скорее исключение, чем правило. С другой стороны, все общедоступные сервисы облачного хранения данных позиционируют свои десктопные клиенты, исключительно как пользовательские (per-user), а не системные (per-machine) приложения. Надо заметить, при этом они не могут устанавливаться на компьютер пользователем без административных прав, что было бы вполне логично. Тот же Skype вполне себе такое умеет.

В сети есть описание запуска десктопного клиента сервиса Dropbox.com как службы на сервере Windows. Аналогичный рецепт есть и на русском. Чем такой вариант мне не нравится: запуск сервиса осуществляется из-под учётной записи Administrator, пароль которой в этом случае может быть легко получен злоумышленником с помощью широко известных инструментов типа SAPD.exe или его скриптовых реализаций. И если для домашнего сервера ещё можно на это не обращать внимания, то использование такого способа в многопользовательских сетях несёт неприемлемый риск.

Другим решением задачи автоматической синхронизации файлов между сервером и облачными сервисами может быть установка и запуск клиентов из-под системной учётной записи. К сожалению, не для всех сервисов это возможно. Например, родной для Windows клиент Skydrive прямо запрещает установку с административными правами. А вот с Dropbox такое сделать можно.
Всё ниже описанное делалось на Windows 7 SP1.

  • PStools от SysInternals (из которых нужен только Psexec.exe).
  • Дистрибутив Dropbox (Версия клиента 1.4.17 – актуальная на 18/09/2012)
  • Нужны регистрационные данные учётной записи сервиса Dropbox.com (e-mail и пароль) и путь к нашей синхронизируемой папки. Она, к сожалению, не может называться иначе, чем Dropbox.
  • Заранее создадим для неё родительскую папку.
  • Лучше сразу собрать всё необходимое в одной папке,
  • … и сразу открыть текстовый файл с логином, паролем и путём. В момент, когда они нам понадобятся, сделать это будет чуть сложнее.

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

Выполняем PSexec -i -s « \Dropbox 1.4.17.exe» (благо, создатели Windows нам это пока ещё позволяют сделать).

Получем обычное окно установщика.

В этот момент исчезает с экрана Windows Explorer, запущенный из-под пользовательской учётки. Неожиданно, но если у нас есть открытое окно Notepad‘а с параметрами установки, то это нам не помешает. Задаём все запрашиваемые программой параметры:

Отказываемся от платных вариантов (согласиться никогда не поздно), выбираем тип установки Advanced:

Это даёт возможность минимальной настройки параметров клиента.

Изменяем путь к синхронизируемой папке. Кнопка Make New Folder нам не поможет. И выбрать расположение папки из привычного диалогового окна нам тоже не дадут. Поэтому вводим имя директории вручную или копируем из открытого Notepad’ом файла. Установщик принимает расположение, добавляет к нему поддиректорию \Dropbox.
Выбираем, нужена ли нам Selective Sync (выборочная синхронизация). Обычно в этом сценарии применения сервиса она нам не нужна.

Читайте также:  Неверно задано имя папки windows 10 сетевой диск

Пропускаем ознакомительный тур (кнопка Skip Tour) или ещё раз смотрим рекламу сервиса (Next-Next-…), и заканчиваем процесс установки.

Нажав кнопку Finish, видим, как в нашей папке появляются файлы, подгруженные из облачного хранилища. Как видим, сервис установлен и работает. Кто не верит, может сходить браузером на www.dropbox.com и проверить, как там появляется созданный на сервере файл.

Чтобы убедиться, что Dropbox запущен под системной учёткой, разрешим Windows Task Manager’у просматривать процессы всех пользователей, нажав Show processes from all users — и видим, что это действительно так.

Заодно перезапустим свой Windows Explorer, чтобы было удобно работать дальше. Кстати, можно это сделать и из консоли, не заходя в Task Manager.

После перезапуска в области уведомлений отображается иконка состояния сервиса. Кликнув по ней правой кнопкой мыши, откроем окно предпочтений и увидим установленным признак Start Dropbox on system startup.


А вот здесь нам просто врут. Правильно было бы писать не «on system startup», а «on user logon», так как на самом деле лишь создаётся запись в меню автозапуска пользователя. Если на любой системе с уже установленным сервисом выполнить msconfig.exe, то в этом можно будет убедиться.
Но с системной учётной записью такое назначение не работает, поэтому можно снимать эту галку и применять другие пути старта программы в режиме службы Windows — наиболее приемлемые описаны ниже.

Кстати, в этот момент можно откорректировать и положение директории синхронизации, и задать Selective Sync, кому надо. Русского языка в доступных System Languages, естественно, нет.

На этом можно считать установку и начальную настройку законченной. Теперь рассмотрим варианты запуска.

Запуск Dropbox как службы Widows с помощью NSSM

Со времён Windows Server 2003 известно, что практически любой исполняемый файл можно сделать службой Windows с помощью связки программ srvany и instsrv из Windows Server 2003 Resource Kit. Менее известна утилита nssm.exe, которую уже более 10 лет поддерживает и разрабатывает Iain Patterson. Она имеет определённые преимущества, но параноики могут обойтись неоднократно описанной классикой от Microsoft.
Хотя, настоящий параноик никогда не поставит к себе в продакшн сервер клиент Dropbox, не посмотрев Process Monitor’ом на тестовой системе, куда тот лезет и чем интересуется. А посмотрев, не поставит уже точно (и возможно будет прав).
Такой способ установки даст возможность рулить службой через оснастку Services со всеми вытекающими плюсами (логирование, возможность извещения об ошибках, автоматический перезапуск в случае сбоя и пр.)
Итак, копируем версию nssm.exe, соответствующую архитектуре компьютера, в директорию C:\windows\. Открываем административную консоль:

Вводим там команду nssm install для вызова интерфейса nssm.exe. Нашу службу назовём, например, DropBoxSvc. Задаём расположение исполняемого файла Dropbox.exe.
В случае x86 систем путь будет:
C:\Windows\System32\config\systemprofile\AppData\Roaming\Dropbox\bin\Dropbox.exe
В случае x64 систем немного по-другому:
C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming\Dropbox\bin\Dropbox.exe

Нажимаем Install Service – и всё, служба создана. Проверяем её наличие через оснастку Services:

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

Хотелось бы сделать службу интерактивной, вроде бы и галку такую («Allow service to interact with desktop«) на второй закладке поставить можно, но начиная с Vista этой возможности нет, так что все красивовсти родного интерфейса Dropbox останутся для нас недоступными. Остальные параметры – по вкусу, дефолтные тоже работают.
Если нужно автоматизировать управление службой для использования в командных файлах – можно использовать для запуска синхронизации команду sc stop DropBoxSvc, для остановки, соответственно, sc start DropBoxSvc.
Всё, перезагружаем машину и проверяем работу сервиса.

Запуск Dropbox, как задания Task Scheduler.

Этот вариант проще и не требует установки сторонних или не поддерживаемых Microsoft на платформе 2008 программ .
Плюс – более гибкое задание условий запуска.
Минус – невозможно администрировать через оснастку Services.
Задаём название и описание задачи:

Задаём условие исполнения – при старте системы.

Ставим задержку в 1 минуту от загрузки:

Задаём путь к исполняемому файлу Dropbox.exe. Как описано выше, он
будет зависеть от архитектуры системы:
В случае x86 систем путь будет:
C:\Windows\System32\config\systemprofile\AppData\Roaming\Dropbox\bin\Dropbox.exe
В случае x64 систем немного по-другому:
C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming\Dropbox\bin\Dropbox.exe

Ставим условие необходимости сетевого подключения (без него работа сервиса бессмысленна, а памяти процесс Dropbox.exe занимает более 50 Мб).

Для удобства проверки и ручного запуска разрешаем запуск по требованию, а при неудачном запуске заставим задание повторять попытки каждые 10 минут в течение первого часа работы системы.

Dropbox: взгляд изнутри

В этой статье я расскажу о внутреннем устройстве популярного сервиса облачного хранения Dropbox. В частности, будет затронуто устройство протокола Dropbox, а также показана статистика его использования в некоторых странах Европы. Кроме этого, я сравню его с другими сервисами, такими как iCloud, Google Drive и SkyDrive.

Читайте также:  Не могу установить windows live mail

Статья сугубо техническая. Не будет никаких сводных таблиц со стоимостью за Гб и анализом того, сколько еще можно получить за приглашенных «друзей».

Текст основан на научной статье “Dropbox изнутри: Изучаем сервисы облачного хранения” (Inside Dropbox: Understanding Personal Cloud Storage Services). PDF

В последние несколько лет произошел огромный скачок популярности сервисов облачного хранения данных. В гонке вооружений участвуют все крупные игроки и несколько молодых стартапов. В основном, вся информация о внутреннем устройстве сервисов и реальных цифрах их использования — это тайна за семью печатями. Нас кормят только данными, прошедшими через отдел маркетинга, что, безусловно, несколько отличается от реальности. Поэтому давайте копнем поглубже вместе с ребятами Idilio Drago, Anna Sperotto, Marco Mellia, Ramin Sadre, Maurizio M. Munafò и Aiko Pras — авторами исследования.

Вступление

Dropbox клиент разработан в основном на языке Python с использованием сторонних библиотек, таких как librsync. Клиент поддерживает все основные ОС: Windows, Mac, Linux. Использование Python однозначно говорит о том, что клиент разрабатывался с учетом облегченного портирования на различные платформы.

Основной элемент системы — это блок (chunk) размером до 4 Mb. В случае, если файл большего размера, он разбивается на несколько блоков, и каждый блок воспринимается системой независимо от других. Для каждого блока вычисляется SHA256 хеш, и эта информация является частью метаинформации о файле. Dropbox уменьшает объем передаваемых данных за счет передачи только разницы между измененными блоками файла. Кроме того, локально он содержит всю метаинформацию по файлам, которую синхронизирует с сервером и передает только изменения с прошлой версии (incremental updates).

Dropbox использует два типа серверов: управляющий (control) и сервер данных (data storage). Сервера управления находятся под контролем Dropbox, сервера данных — это сервера Амазона (Amazon S3, EC2). Для коммуникациями с серверами во всех случаях используется HTTPS.

Доменные имена, используемые Dropbox, всегда заканчиваются на dropbox.com. В таблице ниже приведены поддомены для управляющих серверов и серверов данных.

Поддомен Хостинг Описание
client-lb/clientX Dropbox Meta data
notifyX Dropbox Notifications
api Dropbox API control
www Dropbox Web servers
d Dropbox Event logs
dl Amazon Direct links
dl-clientX Amazon Client storage
dl-debugX Amazon Back traces
dl-web Amazon Web storage
api-content Amazon API storage

Dropbox: изнутри

Поскольку Dropbox использует HTTPS для шифрования всего трафика между серверами, простой перехват не даст никакой полезной информации. Для исследования мы устанавливали Squid и направляли весь трафик с компьютера под Linux на этот прокси. Также на прокси поставили SSL-bump, чтобы можно было расшифровывать SSL. Последним шагом устанавливаем самоподписанный сертификат на Squid и изменяем сертификат внутри запущенного Dropbox приложения. Данная конфигурация позволяет расшифровать и просмотреть трафик Dropbox.

Иллюстрация показывает протокол, используемый Dropbox для загрузки локально измененных блоков на свои сервера. После регистрации клиента на управляющих серверах clientX.dropbox.com, команда list получает изменения в метаданных, которые показывают разницу между локальной копией и тем, что находится на сервере. Как только происходит локальное изменение файлов, Dropbox вызывает команду commit_batch (client-lb.dropbox.com) и посылает измененные метаданные на сервер. После этого сервер отвечает, какие блоки ему необходимы, используя команду need_blocks, и клиент отсылает эти блоки на Amazon (dl-clientX.dropbox.com). Сохранение каждого блока подтверждается командой ОК.

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

Протокол управления

Dropbox использует следующие группы управляющих серверов:

  • Уведомления (notifications).
    Dropbox держит постоянное открытое TCP соеденинение с серверами уведомлений (notifyX.dropbox.com). Это необходимо для получения информации об изменении файлов, которое могло произойти на других клиентах. По сравнению с другим трафиком, эта информация не шифруется. Используется задержка HTTP ответа для быстрого уведомления клиентов (push mechanism). Клиент посылает запрос, и сервер задерживает ответ примерно на 60 секунд. По истечении 60 секунд, клиент немедленно посылает следующий запрос на сервер. Если ответ сформирован раньше, то сервер отвечает немедленно.
  • Управление метаданными (meta-data administration)
    Сервера управления метаданными отвечают не только за информирование об изменениях в блоках и файлах, но также и за авторизацию (authentication) клиента. Для этих серверов используются следующие доменные имена: client-lb.dropbox.com, clientX.dropbox.com. Кроме этого, сервера управления могут контролировать поведение клиента. В момент эксперимента было замечено, что сервера могут указать клиенту максимальное количество блоков, которое он может посылать на сервер. Это используется для управления трафиком, который генерирует клиент.
  • Системные сообщения (system logs)
    сервера предоставляются Амазоном и имеют название dl-debug.dropbox.com; остальные сообщения идут непосредственно на Dropbox d.dropbox.com.
Читайте также:  Установка microsoft office для linux
Набор данных и популярность клиентов

Мы избрали пассивный способ наблюдения за Dropbox. Для сбора трафика использовался open source инструмент Tstat. Tstat позволяет собирать разнообразную информацию о ТСР, предоставляя сведения более, чем о сотне разнообразных параметров соединения. Для анализа Dropbox мы предприняли несколько дополнительных шагов.

Поскольку Dropbox использует HTTPS, мы установили, что имя во всех сертификатах, используемых Dropbox — *.dropbox.com. Это было важно для правильной классификации трафика.

Мы пополнили открытую информацию записями с серверов DNS, к которым обращались клиенты. Таким образом мы связали IP адреса и имена серверов.

Tstat возвращал незашифрованную информацию об устройстве и именах директорий, которыми обменивался клиент и сервер уведомлений.

Данные были получены с помощью установки Tstat в 4 точках в Европе. Записи с точек, обозначенных как Home 1 и Home 2, составляют данные пользователей известного интернет-провайдера (ISP), предоставляющего интернет по ADSL и оптическому кабелю. Данные, обозначенные как Campus 1 и Campus 2, были собраны в университетах. Исследования проводились с 24 Марта 2012 по 5 Мая 2012.

Имя Тип Количество IP адресов Обьем данных (GB)
Campus 1 Wired 400 5,320
Campus 2 Wired/Wireless 2,528 55,054
Home 1 FTTH/ADSL 18,785 509,909
Home 2 ADSL 13,723 301,448

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

Второй график показывает, сколько данных было передано на это облачное хранилище в день.

Хотелось бы обратить внимание на следующее:

  • Несмотря на большое количество устройств, использующих iCloud, количество данных, передаваемое на этот сервис, соизмеримо с другими сервисами.
  • В момент появления Google Drive, трафик, передаваемый на этот сервис, сделал большой скачок и приблизился к iCloud; в то же время количество инсталляций программы оставалось минимальным.

Для сравнения приведем данные использования сервисов YouTube и Dropbox в Campus 2.

Таблица показывает суммарный трафик Dropbox, который мы отследили в ходе наших измерений.

Campus 1 Campus 2 Home 1 Home 2 Всего
Запросов 167,189 1,902,824 1,438,369 693,086 4,204,666
Обьем (GB) 146 1,814 1,153 506 3,624
Устройств 283 6,609 3,350 1,313 11,561

Анализ трафика

Графики показывают куммулятивную функцию распределения для различного количества блоков.

Оказалось, что более, чем в 80% процентах случаев, количество блоков при сохранении данных не превышает 10. График для данных с точки Home 2 существенно отличается от остальных, так как здесь мы наблюдали одного клиента, который постоянно, на протяжении нескольких дней, пересылал одни и те же блоки. Анализ полученных данных показывает, что основной сценарий использования Dropbox — это постоянная работа с небольшими, постоянно изменяемыми файлами.

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

Максимальная скорость, которую мы наблюдали, была близка к 10 Mbit/s и наблюдалась на файлах с размером больше 1 Mb. Средняя скорость для Campus 2 была: запись — 462 kbits/s и чтение — 797 kbits/s. Для Campus 1: запись — 359 kbits/s и чтение — 783 kbits/s.



Также из графиков видно, что скорость существенно зависит от количества блоков: чем больше блоков, тем ниже скорость.

Изменения в Dropbox 1.4.0

Начиная с версии 1.4.0, Dropbox добавил две новые команды: store_batch и retrieve_batch, что позволяет работать с несколькими блоками одновременно. Это улучшение должно существенно улучшить пропускную способность сервиса.

Количество устройств

График показывает количество установок Dropbox у пользователей дома. Примерно в 60% случаев у пользователей существует только 1 устройство с Dropbox. У 25% пользователей дома есть 2 устройства, использующих Dropbox.

Среднее время использования

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

Из графика видно, что время использования Dropbox в большинстве случаев меньше 4 часов. Исключение составляет Campus 1, где много рабочих компьютеров и компьютеров, работающих постоянно.

Исходные данные

Вы можете загрузить исходные данные, которые использовались в этой статье для дальнейшего анализа. (Исходные данные).

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

Оцените статью