Распределение временных файлов по дискам

ash2k - ash2kk на gmail.com
Вт Май 4 15:48:44 MSD 2010


Здравствуйте!
Использую Nginx upload module для загрузки файлов и хотелось бы
записывать временные файлы не на один винт, а на несколько (без
рейдов). Как это можно сделать?

В голову пришла идея сделать "хешированную" директорию, как это
описано в директиве upload_store [1], и через nullfs (у меня FreeBSD)
примонтировать винты в эти директории, но выглядит это как костыль.

Вспомнил, что где-то уже видел описание "хешированных" директорий, и
нашел директивы proxy_temp_path [2] и fastcgi_temp_path [3]. Появилась
идея: было бы удобно если бы можно было описывать такие директории
блоками, схожими с upstream'ами:

store store1 {
   /mnt/hd1 [ уровень1 [ уровень2 [ уровень3 ] ] ];
   /mnt/hd2 [ уровень1 [ уровень2 [ уровень3 ] ] ];
}

Затем такие store-блоки можно было бы использовать в директивах
upload_store, proxy_temp_path, fastcgi_temp_path, ...

upload_store store1;

Как Вам идея?

[1]: http://www.grid.net.ru/nginx/upload.en.html#upload_store
[2]: http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_temp_path
[3]: http://sysoev.ru/nginx/docs/http/ngx_http_fastcgi_module.html#fastcgi_temp_path


Подробная информация о списке рассылки nginx-ru