Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Распределение временны х файлов по дискам
5 мая 2010 г. 13:58 пользователь Sergey Shepelev <temotor@xxxxxxxxx> написал:
>>> Один из вариантов такой: поднять кластерную файловую систему. По узлу
>>> на каждом диске. Этих ФС сейчас как грязи, многие работают поверх
>>> другой ФС. Примонтировать её в одну точку. Заодно потом будет
>>> прозрачный переход на несколько машин, когда на этой диски закончатся.
>>
>> Да, наверное так можно сделать, только у меня итак на всех этих дисках
>> MogileFS и файлы загружаются туда асинхронно скриптом после записи их
>> nginx'ом во временное место хранения.
>
> Хорошо, тогда классический вариант для раздачи с разных дисков:
> поднять по одному nginx на каждый диск, аплоады балансить на них.
У меня на двух фронт серверах стоит кроме всего прочего haproxy,
проксирующий загружаемые файлы на backend сервера-хранилища на nginx,
откуда они загружаются в MogileFS. Можно настроить haproxy для
распределения запросов не по серверам, а по их дискам - для каждого
диска в сервере создать отдельный "сервер" в конфиге haproxy:
Часть предполагаемого конфига haproxy:
backend uploadserver
balance url_param X-Progress-ID
server storage1 ip1:8001 #это винт 1 сервера 1
server storage1 ip1:8002 #это винт 2 сервера 1
server storage1 ip1:8003
server storage1 ip1:8004
server storage2 ip2:8001 #это винт 1 сервера 2
server storage2 ip2:8002
server storage2 ip2:8003
тогда потребуется один nginx на каждом сервере. Хотел сделать как-то
так, но upload_store оказывается переменные не понимает (почему?):
http {
map $server_port $store_path {
8001 /mnt/hd1;
8002 /mnt/hd2;
8003 /mnt/hd3;
8004 /mnt/hd4;
}
server {
listen ip1:8001;
listen ip1:8002;
listen ip1:8003;
listen ip1:8004;
...
location = /upload {
upload_store $store_path;
...
}
}
}
Видимо придется делать несколько server на разных портах с разными
директивами upload_store, а include поможет избежать излишнего
дублирования.
Спасибо, то, что нужно.
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|