-1

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

У меня есть простой серверный веб-сервер, который можно подключить к ограниченному кругу клиентов по сети. (Допустим, максимум 10 в любой момент времени. Сильная боковая нагрузка никогда не будет расти.) Теперь приложение должно распространять некоторые файлы в моих клиентских системах. У меня есть возможность разместить его на своем рабочем столе или на сервере XEON, оба содержат одну сетевую карту. В любом случае (рабочий стол / сервер) сервер будет находиться в одной сети. Хотя количество клиентов ограничено, но файлы могут быть большими (в ГБ), и все клиенты могут запрашивать их одновременно.

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

Рабочий стол работает на Core I7, 4-го поколения. Жесткий диск 2 ТБ, флэш-накопитель 128 ГБ, сервер Xeo 8 ГБ ОЗУ. (Я поставлю спецификации)

Вычисление, возможно, не собирается быть главной горловиной бутылки. Это все будет сетевой IO. Пропускная способность моей сети не может быть улучшена, так как я нахожусь в той же сети. Я могу выбрать сервер, так как вычислительные потоки могут быть больше. У меня также будет больше оперативной памяти, которая гарантирует, что файлы будут храниться в основной памяти. Файловый ввод-вывод будет быстрее по сравнению с рабочим столом, как и кэш-память L1/L2. Я чувствую, что производительность сети не будет улучшаться между настольным ПК /xeon, поскольку она является узким местом сетевой карты. Пожалуйста, дайте мне знать, какие другие факторы сделали бы один выбор намного лучше, чем другой. (Оба работают под управлением Ubuntu 14.04(Desktop работает под управлением версии клиента, а xeon - под управлением версии сервера.))

1 ответ1

2

Сетевое оборудование - если у вас его еще нет, приобретите гигабитный коммутатор с достаточным количеством портов для вашего маршрутизатора и всех систем, которые будут к нему подключаться. Ваши системы уже должны иметь гигабит на них. Если они не сбросят 15 долларов и получат пару. Они не безосновательно дороги.

Файловый сервер, используйте систему XEON, особенно если его оперативной памятью является ECC (код исправления ошибок). Серия i7 не может использовать ECC, а ECC отлично подходит для поддержания ваших данных в живых (что означает отсутствие молчаливого повреждения, связанного с ОЗУ). Вы всегда будете сражаться с молчаливой коррупцией, зачем все усложнять?

Поскольку вы используете Ubuntu Server 14.04, вам нужно решить, какую роль вы хотите играть. Я предлагаю использовать SSH для связи с сервером. Если на сервере установлен IPMI (интеллектуальный интерфейс управления платформой, найдите его, если не знаете), затем снимите монитор и запустите его без монитора. Я рекомендую поместить на него ключ SSH, защищенный парольной фразой, чтобы сервер был более безопасным, прочитайте -> https://askubuntu.com/questions/2271/how-to-harden-an-ssh-server

После того, как вы укрепите сервер, вам, вероятно, следует использовать samba для передачи файлов. Вы можете использовать NFS (сетевую файловую систему), так как вы используете только машины с Linux, хотя лучше использовать Samba, если вы хотите использовать смешанную сеть. Это то, что я использую в нижней части /etc/samba/smb.conf

[Storage]
   comment = Storage
   path = /media/Storage
   browseable = yes
   read only = no
   guest ok = yes
   create mask = 0755
   writeable = yes

Одна вещь, которую вам нужно сделать, это выбрать формат раздела. Многое может пойти и пойдет не так. Из перечисленных вами спецификаций видно, что у вас есть один диск, который является нормальным начальным местом. Я предлагаю использовать EXT4 на нем, поскольку он является родным для Linux. Другие рекомендуют EXT3 и, честно говоря, любой из них будет отлично работать в ваших целях. Если вы решили использовать более одного диска и хотите объединить пространство в одну точку монтирования, у вас есть несколько вариантов. BTRFS имеет рейдовый эквивалент 0,1,5,6 с 5 и 6 экспериментальным. Существует также проверенный и надежный mdadm, который достаточно прост в настройке и даст вам программный рейд. Вы также можете пойти прагматическим путем и использовать что-то вроде AUFS (еще одна объединенная файловая система) или MHDDFS (файловая система с несколькими жесткими дисками). Я предпочитаю MHDDFS, поскольку он прост, удобен в использовании, и вам не нужно компилировать его в ядро. Есть также Mergerfs, хотя я не использовал это все так много. Если вы идете прагматичным путем, я предлагаю использовать Snapraid, чтобы сохранить паритет для дисков. Вам нужно вычищать 10% самых старых раз в месяц, чтобы не допустить повреждения данных.

Поскольку у вас только один диск, вы ничего не можете сделать с его скоростью, кроме покупки более быстрых дисков. Накопитель WD Green емкостью 4 ТБ с WDIDLE, настроенным на бесконечное число оборотов выше гигабитных скоростей в моей сети, поэтому я просто объединил диски и использовал snapraid для обеспечения безопасности моих данных.

Также может быть стоит потратить время на получение DNS и настройку ownCloud или FTP. Вы можете разместить свой собственный адрес электронной почты, но настройка является проблемой. Вы также должны собрать резервную копию rsync, потому что raid не является резервной копией. У этого списка нет конца.

Надеюсь, я пролил немного света на эту проблему. Как всегда, много читаю. Linux - полезная ОС, но ее документация повсюду. Всегда проверяйте дату в статье, чтобы не читать десять страниц несуществующего материала.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .