ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fr] Изменить немного алгор итм try_files



Здравствуйте!
Никому не секрет, что в серверах, занимающихся раздачей статики узким местом является iops дисков. Представиим ситуацию, есть 8 дисков, эти 8 дисков обслужат больше запросов, чем эти же 8 дисков в любом рейде. Но так как нам хотелось бы иметь какой-то бекап и, желательно, чтобы не было простоя, если слетает один из веников. Для этого я поделил веники по 4 шт. и сделал скрипт, который запускаю раз в 10 минут (чаще файлы все равно не обновляются), получился принцип рейд10.

#!/bin/bash
cp -aufx /storage1/* /storage2
cp -aufx /storage2/* /storage1
cp -aufx /storage3/* /storage4
cp -aufx /storage4/* /storage3
cp -aufx /storage5/* /storage6
cp -aufx /storage6/* /storage5
cp -aufx /storage7/* /storage8
cp -aufx /storage8/* /storage7


Все эти 8 веников объеденены с помощью aufs и при заливке файл рандомно попадет на один из дисков и потом скриптом копируется на соседний. При чтении, если использовать aufs, то получится, что запросы всегда идут к тому диску, где первым найден файл: /storage1, /storage3, /storage5, /storage7 (то есть по порядку как это делает сейчас try_files), остальные диски при этом простаивают. Если немного модифицировать алгоритм try_files, когда первый путь для поиска будет выбираться рандомно и затем обходить все оставшиеся пути по кругу, то мы получим равномерное распределение запросов по дискам в такой конструкции:
                 try_files
                            /storage1$uri
                            /storage3$uri
                            /storage5$uri
                            /storage7$uri
                            /storage2$uri
                            /storage4$uri
                            /storage6$uri
                            /storage8$uri




--
WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.