Pull to refresh
0

Thin Provisioning — «кредитная карта» для хранилища

Reading time 5 min
Views 33K
image

Вот уже около 20 лет назад в жизнь IT-отделов компаний вошло понятие SAN — Storage Area Network или специализированная сеть устройств хранения данных. Использование централизованных хранилищ, на которых размещаются используемые на серверах приложений их дисковые разделы, подключенные по специальным высокоскоростным протоколам, позволило значительно повысить эффективность и гибкость использования дискового пространства.

Причины, стоявшие за созданием SAN, отчасти были теми же, что стояли ранее за созданием обычной локальной сети LAN и shared-устройств в ней. Вместо того, чтобы давать каждому клиентскому компьютеру по лазерному принтеру, который будет простаивать в 99% времени, лучше дадим ему доступ к коллективно используемому принтеру, пусть более мощному и дорогому, но используемому с более высокой средней загрузкой, и тем самым повысим уровень использования ресурса и его экономическую эффективность.
В том числе использование «общего дискового ресурса» решило и проблему «недоиспользования». Если минимально доступный диск SATA на сегодня обычно не менее 500GB, то если мы не используем его для хранения накачанного из торрентов видео, то обычно, в рядовом использовании, он пуст на 90-95%. Типовая установка OS занимает 2-8 GB, приложения и его данные еще сколько-то, чаще всего несколько гигабайт, все же остальное пространство остается свободным, но увы, недоступным для, возможно, нуждающихся задач на других компьютерах.


Так было до тех пор пока не появилась Storage Area Network — SAN — специальная сеть для хранения и передачи данных. В этой сети используется специальный высокоскоростной протокол передачи данных, например FC или iSCSI, который позволяет использовать дисковое пространство с централизованного устройства хранения, без значительных потерь доступности и быстродействия, нарезав и раздав потребителям участки общего пространства нужного им размера, словно это локальные диски данного компьютера, а не разделы на большом общем сторадже.

Однако, отчасти решив использованием SAN проблему provisioning-а пространства хранения для приложений, мы все же вновь столкнемся с ней, правда на новом уровне.

Дело в том, что в практической жизни системный администратор никогда не «нарежет» приложению раздел ровно по запрошенному или занимаемому им пространству, так как всегда нужно пространство на внезапное увеличение объемов, рост базы, в случае базы данных, место под логи для вебсервера, и так далее. Закон природы сегодняшнего дня состоит в том, что объемы информации растут, и, подчас, растут экспоненциально.
Поэтому ничего удивительного, что на дисковых разделах в SAN (обычно их называют LUN) весьма значительное место бывает распределено, но не занято данными соответствующего приложения, однако и для других, более нуждающихся приложений, уже более недоступно.

image

Для того, чтобы не начинать каждый день с увеличения разделов данных, и не сталкиваться с неожиданно «упавшей» из за исчерпания места задачей, любой администратор системы хранения создает разделы данных на SAN «с запасом», подчас значительным, так, в результатах соответствующего исследования мне встречалось упоминание, что до 60-80% пространства на SAN-хранилищах это распределенное «на будущее», но ничем настоящее время не занятое место.

Таким образом, всего лишь найдя и использовав способ динамически выделять место на дисках SAN-системы, мы можем, в общем случае, экономить до 60-80% пространства, причем дорогостоящего, быстродействующего дискового пространства, бесполезно «похороненного» в настоящий момент в «нарезанных» LUN-ах «про запас».

Методика выделения пространства хранения приложениям не сразу при создании диска, а по мере возникновения в нем потребности у данных приложения, «on demand», получило название «thin provisioning». К сожалению на русском языке все еще нет общепринятого перевода, поэтому я предпочитаю называть это «экономное распределение».

Как ни удивительно, но с принципом thin provisioning вы широко знакомы в быту.
Так, например, работает кредит в банке. Когда банк выдает десять тысяч кредитных карточек с кредитным лимитом в 500 тысяч, он не хранит в обеспечение на счетах пять миллиардов, так как рассчитывает, что пользователи карточек не станут немедленно тратить все предоставленные им по кредиту деньги, иначе у банка просто бы не хватило активов. Тем не менее, когда это необходимо, вы сможете воспользоваться подлимитной суммой, если общий «пул» средств банка не исчерпан.
Также работают водопроводные и электрические компании, предоставляя вам ресурс они полагают, что весь многоэтажный дом не станет разом открывать краны или включат стиральные машины и электрические чайники, а за счет более гибкого расхода удается сэкономить на цене ресурсов и мощности инфраструктуры.

Точно также работают многозадачные OS и системы виртуализации. Вы можете использовать множество программ одновременно, с условием, что они не захотят одновременно, в одно и то же время, загрузить процессор полностью. Общие ресурсы процессора выделяются приложению по мере необходимости, но каждая программа при этом «питает иллюзию», что ей доступны все 12 ядер вашего нового сервера. Это действительно так, но не разом для всех.

Точно также складывается ситуация при использовании thin provisioning. Если программа желает иметь раздел данных размером 50GB (даже несмотря на то, что в данный момент у нее есть на нем всего 10GB данных), то мы можем предоставить ей раздел, видимый приложением как раздел размером 50GB, однако 40 из них будут «виртуальными», не занимая в этот момент места на дисках системы, пока в них не будут записаны реальные данные. Это позволит нам не «запирать» место «про запас», а использовать его по мере возникновения в нем необходимости.

Насколько мне известно, первой принцип thin provisioning в SAN начала использовать в своих системах хранения недавно купленная HP компания 3Par, у которой эта возможность была ключевой (да и практически единственной) «фишкой» их систем, однако, в числе первых, thin provisioning реализовала и NetApp в своих системах FAS. Для вас должно быть уже не сюрприз, что так просто и быстро (фактически — с новым релизом обновления внутренней OS) это появилось в уже существующих системах потому, что уже не раз помянутая добрым словом, созданная в 1993 году NetApp «файловая система WAFL», лежащая в основе всех систем хранения NetApp, позволила это сделать очень легко и просто.

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

image

Не попадите в плен не вполне верной визуализации, при увеличении занятого объема приложением А, данные других приложений не перемещаются по дискам, просто разделу приложения А выделяются и добавляются дополнительные сегменты дискового пространства, лежащие в области свободного места. Теоретически это увеличивает фрагментацию данных, но практически негативным эффектом от него можно пренебречь, так как выделение пространства осуществляется сравнительно протяженными кусками мегабайтного порядка, и, как показывает практика, разница в производительности между thin и thick-данными обычно "ниже измеряемого уровня".

Таким образом, использование thin provisioning позволяет решить проблему неэффективного распределения пространства в SAN, сэкономить место, облегчить админские процедуры распределения пространства приложениям на хранилище, и использовать так называемый oversubscribing, то есть выделить приложениям места больше, чем мы располагаем физически, в резонном расчете на то, что пространство приложениями не затребуется одновременно. По мере же возникновения в нем потребности мы сможем позже легко увеличить физическую емкость хранилища.
Tags:
Hubs:
+19
Comments 88
Comments Comments 88

Articles

Information

Website
www.netapp.com
Registered
Founded
Employees
1,001–5,000 employees
Location
Россия