P2P →
Краткий Обзор PlanetLab
Это статья будет посвящена PlanetLab (http://www.planet-lab.eu) – сети, широко используемой учеными для тестирования новых сетевых сервисов или модификации уже существующих. На текущий момент, использование PlanetLab в качестве платформы для тестирования вошло в список стандартной методологии исследования распределенных систем. За время своего существования PlanetLab использовалась для тестирования большого числа различных сервисов: p2p сетей, включая DHT1, anycast2, 3, распределения файлов большого размера4, анализа сети5, диагностики аномалий и ошибок6, и многих других.
Документ, описывающий идею создания PlanetLab и ее основные концепции впервые был опубликован в 2002 году. Благодаря спонсорству Intel, эти идеи не пропали даром, и уже в 2003 первые 100 узлов были подняты в 40 различных университетах по всему миру. На сегодняшний день проект поддерживается множеством спонсоров. На текущий момент PlanetLab состоит из 1109 узлов, распределенных по 535 различным точкам мира.
Для того, чтобы иметь возможность пользоваться PlanetLab, необходимо быть сотрудником одной из организаций, которые содержат у себя узлы ПланетЛаба. Из этого правила есть и исключение – в сети развернуты бесплатные публичные сервисы: прокси, p2p сеть Coral Content Distribution Network.
Прокси PlaneLab, кстати, не стоит использовать из-за проблем с анонимностью – любая активность на проксях логируется. Описание этого факта в рунете нашла тут.
Итак, пройдя регистрацию и став счастливым пользователем PlanetLab, новичку придется изучить не только API, с помощью которого можно управлять ресурсами, но и терминологию сети –что такое slices, slivers, nodes, etc (см. ниже). Зато когда один раз освоишься, то становится очень легко управлять ресурсами.
Один распределенный сервис должен запускаться на нескольких машинах. Пользователь легко сам (или автоматически, запрограммировав) выбирает доступные узлы сети, которые он хочет использовать. На этих нодах ему тут же выделяются ресурсы, вся информация о пользователе берется из центральной базы данных. Так, один раз загрузив открытый rsa ключ, его можно тут же использовать для подключения к любому свеже-добавленному узлу по ssh. Кстати, траффик в сети не лимитирован, его можно использовать достаточно интенсивно. Это приводит к тому, что владельцам узлов приходится платить где-то 1000$ в год за использованный траффик.
Центральный Bootsever “PlanetLab Central” (PLC) позволяет централизованное управление всеми ресурсами PlanetLab, начиная от выбора операционной системы, запускаемой на каждом из узлов, выбора какой пользователь имеет право доступа на какую ноду, заканчивая выбором того, какие ресурсы будут выделены на какие сервисы. Причем настройки изменяются как с помощью веб-интерфейса, так и через специализированное XML-RPC API. Пример использования такого API я дала в этой статье. При этом сами владельцы узлов не имеют возможности управлять ресурсами, в том числе, какие сервисы запущены на их узле.
Этот концепт облегчает пользователям PlanetLab разворачивать свои сервисы для их дальнейшего тестирования. PlanetLab позволяет запускать различные сервисы на узлах параллельно, что достигается с помощью распределенной виртуализации. Базовые абстракции, используемые в PlanetLab – это slice и sliver.
Slice – это все ресурсы, которые назначены отдельному пользователю. Сюда включается список всех отдельных узлов, которые были выбраны пользователем для проведения тестирования.
Таким образом, каждый сервис отдельного пользователя запускается на slice от общих ресурсов. Слайсы распределены по группе узлов, выбранных пользователем. На каждом из этих узлов запущено по несколько сервисов, причем число таких сервисов ничем не лимитировано.
Для отделения сервисов друг от друга используется sliver. Это виртуализированные ресурсы отдельного сервера, которые назначены конкретному пользователю. Реализован он с помощью Linux-VServers. Сетевые же ресурсы виртуализируются с помощью VNET.
Ниже картинка иллюстрирует принцип архитектуры PlanetLab, центральный бокс символизирует PLC.
Надеюсь, Вам было интересно. Более подробно о PlanetLab можно почитать на самом сайте сети.
1Sean Rhea, Brighten Godfrey, Brad Karp, John Kubiatowicz, Sylvia Ratnasamy, Scott Shenker, Ion Stoica, and Harlan Yu. 2005. OpenDHT: a public DHT service and its uses. SIGCOMM Comput. Commun. Rev. 35, 4 (August 2005), 73-84. DOI=10.1145/1090191.1080102 http://doi.acm.org/10.1145/1090191.1080102
2FREEDMAN, M. J., LAKSHMINARAYANAN, K., AND MAZIERES, D. OASIS: Anycast for any service. In Proc. 3rd Symposium on Networked Systems Design and Implementation (NSDI 06) (San Jose, CA, May 2006).
3BERNARD WONG, ALEKSANDRS SLIVKINS, E. G. S. MERIDIAN: A lightweight network location service without virtual. In In Proceedings of The ACM SIGCOMM Conference, Philadelphia, Pennsylvania (August 2005).
4ANNAPUREDDY, S., FREEDMAN, M. J., AND MAZIERES, D. SHARK: Scaling file servers via cooperative caching. In Proceedings of the 2nd USENIX Symposium on Networked Systems Design and Implementation (NSDI ’05) (Boston, MA, USA, May 2005).
5SPRING, N., WETHERALL, D., AND ANDERSON, T. SCRIPTROUTE: A public internet measurement facility, 2002.
6ZHANG, M., ZHANG, C., PAI, V. S., PETERSON, L. L., AND WANG, R. Y. PLANETSEER: Internet path failure monitoring and characterization in wide-area services. In OSDI
P.S. Если нет доступа к статьям, а захотелось почитать, используйте этот прокси
Документ, описывающий идею создания PlanetLab и ее основные концепции впервые был опубликован в 2002 году. Благодаря спонсорству Intel, эти идеи не пропали даром, и уже в 2003 первые 100 узлов были подняты в 40 различных университетах по всему миру. На сегодняшний день проект поддерживается множеством спонсоров. На текущий момент PlanetLab состоит из 1109 узлов, распределенных по 535 различным точкам мира.
Использование PlanetLab
Для того, чтобы иметь возможность пользоваться PlanetLab, необходимо быть сотрудником одной из организаций, которые содержат у себя узлы ПланетЛаба. Из этого правила есть и исключение – в сети развернуты бесплатные публичные сервисы: прокси, p2p сеть Coral Content Distribution Network.
Прокси PlaneLab, кстати, не стоит использовать из-за проблем с анонимностью – любая активность на проксях логируется. Описание этого факта в рунете нашла тут.
Итак, пройдя регистрацию и став счастливым пользователем PlanetLab, новичку придется изучить не только API, с помощью которого можно управлять ресурсами, но и терминологию сети –что такое slices, slivers, nodes, etc (см. ниже). Зато когда один раз освоишься, то становится очень легко управлять ресурсами.
Один распределенный сервис должен запускаться на нескольких машинах. Пользователь легко сам (или автоматически, запрограммировав) выбирает доступные узлы сети, которые он хочет использовать. На этих нодах ему тут же выделяются ресурсы, вся информация о пользователе берется из центральной базы данных. Так, один раз загрузив открытый rsa ключ, его можно тут же использовать для подключения к любому свеже-добавленному узлу по ssh. Кстати, траффик в сети не лимитирован, его можно использовать достаточно интенсивно. Это приводит к тому, что владельцам узлов приходится платить где-то 1000$ в год за использованный траффик.
Основные Принципы и Архитектура PlanetLab
Централизованный Контроль Ресурсов
Центральный Bootsever “PlanetLab Central” (PLC) позволяет централизованное управление всеми ресурсами PlanetLab, начиная от выбора операционной системы, запускаемой на каждом из узлов, выбора какой пользователь имеет право доступа на какую ноду, заканчивая выбором того, какие ресурсы будут выделены на какие сервисы. Причем настройки изменяются как с помощью веб-интерфейса, так и через специализированное XML-RPC API. Пример использования такого API я дала в этой статье. При этом сами владельцы узлов не имеют возможности управлять ресурсами, в том числе, какие сервисы запущены на их узле.
Децентрализованный Менеджмент
Этот концепт облегчает пользователям PlanetLab разворачивать свои сервисы для их дальнейшего тестирования. PlanetLab позволяет запускать различные сервисы на узлах параллельно, что достигается с помощью распределенной виртуализации. Базовые абстракции, используемые в PlanetLab – это slice и sliver.
Slice – это все ресурсы, которые назначены отдельному пользователю. Сюда включается список всех отдельных узлов, которые были выбраны пользователем для проведения тестирования.
Таким образом, каждый сервис отдельного пользователя запускается на slice от общих ресурсов. Слайсы распределены по группе узлов, выбранных пользователем. На каждом из этих узлов запущено по несколько сервисов, причем число таких сервисов ничем не лимитировано.
Для отделения сервисов друг от друга используется sliver. Это виртуализированные ресурсы отдельного сервера, которые назначены конкретному пользователю. Реализован он с помощью Linux-VServers. Сетевые же ресурсы виртуализируются с помощью VNET.
Ниже картинка иллюстрирует принцип архитектуры PlanetLab, центральный бокс символизирует PLC.
Надеюсь, Вам было интересно. Более подробно о PlanetLab можно почитать на самом сайте сети.
Ссылки на статьи:
1Sean Rhea, Brighten Godfrey, Brad Karp, John Kubiatowicz, Sylvia Ratnasamy, Scott Shenker, Ion Stoica, and Harlan Yu. 2005. OpenDHT: a public DHT service and its uses. SIGCOMM Comput. Commun. Rev. 35, 4 (August 2005), 73-84. DOI=10.1145/1090191.1080102 http://doi.acm.org/10.1145/1090191.1080102
2FREEDMAN, M. J., LAKSHMINARAYANAN, K., AND MAZIERES, D. OASIS: Anycast for any service. In Proc. 3rd Symposium on Networked Systems Design and Implementation (NSDI 06) (San Jose, CA, May 2006).
3BERNARD WONG, ALEKSANDRS SLIVKINS, E. G. S. MERIDIAN: A lightweight network location service without virtual. In In Proceedings of The ACM SIGCOMM Conference, Philadelphia, Pennsylvania (August 2005).
4ANNAPUREDDY, S., FREEDMAN, M. J., AND MAZIERES, D. SHARK: Scaling file servers via cooperative caching. In Proceedings of the 2nd USENIX Symposium on Networked Systems Design and Implementation (NSDI ’05) (Boston, MA, USA, May 2005).
5SPRING, N., WETHERALL, D., AND ANDERSON, T. SCRIPTROUTE: A public internet measurement facility, 2002.
6ZHANG, M., ZHANG, C., PAI, V. S., PETERSON, L. L., AND WANG, R. Y. PLANETSEER: Internet path failure monitoring and characterization in wide-area services. In OSDI
P.S. Если нет доступа к статьям, а захотелось почитать, используйте этот прокси
28.01.2012 05:08+0400