Основи на репликацията, репликация, синхронна, асинхронна, за NetApp

Системите за съхранение като предмет на разговор

Какво е репликация и как се случва.

Синхронно Синхронното репликиране е дублиране на данни към две системи за съхранение или два дискови дяла в рамките на една и съща система. Популярният RAID-1 („огледален“) за дискови контролери е по същество просто синхронна репликация към два диска, извършвана от дисковия контролер. В този случай всеки блок от данни се записва повече или по-малко едновременно, паралелно, на двете устройства. По същия начин това се прави на два "диска" в различни системи за съхранение на дискове. Това е „перфектна репликация“, двете копия на данните са напълно идентични, тъй като докато данните не бъдат гарантирано записани и на двете устройства, то не може да започне да записва следващия блок. Въпреки това, теоретичната идеалност в реалния живот се оказва ограничение.

Както виждаме, общата скорост на системата е ограничена от най-тесния канал за предаване на данни. Ако сме свързани към системата за съхранение с 4GB/s FC канал и системата за съхранение се репликира синхронно към отдалечена система през 10MB/s канал, тогава скоростта на обмен на 4GB/s FC канал ще бъде 10MB/s и нито байт повече.

Асинхронна Асинхронна репликация се нарича репликация, която се извършва не в същия момент, когато се записва оригиналният блок данни, а в „удобно време“. Това преодолява недостатъка на синхронната репликация, описан по-горе, тъй като процесът на записване на данни и процесът на прехвърляне на данни към "реплика" са разделени и вече не са свързани.

В същото време самата репликация може да се осъществи по-оптимално, може да се извърши допълнителна оптимизация на процеса, може да се осъществи по много по-евтини и по-бавни канали, но ... създадено копие на даннитеасинхронната репликация (за разлика от синхронната), строго погледнато, никога няма да бъде напълно абсолютно идентична с оригинала, въпреки че постоянно ще се стреми към това съответствие.

„Полусинхронно“ Вариант, който съчетава възможностите на синхронна и асинхронна репликация, е така наречената „полусинхронна“ репликация или „полусинхронна“. В този случай репликацията е синхронна, докато скоростта на системата или връзката позволява това. И тогава, вместо да забави и спре записите, той временно превключва на асинхронен режим, като продължава да обработва входящи данни без забавяне, изпращайки данни за репликация асинхронно, докато стане възможно възстановяването на синхронния режим.

Проблеми с последователността За всяка репликация, различна от синхронната, „проблемът с последователността“ също е сериозен проблем. Нека го разгледаме с прост пример. Възел за съхранение A репликира данни асинхронно към възел за съхранение B. Устройството за съхранение изпълнява база данни, която обработва заявки, като например финансова система.

В процеса на осчетоводяване на транзакция за продажба базата данни намалява брояча на количеството стоки по време на продажбата и добавя сумата на продажбата към базата данни (т.е. преувеличавам и огрубявам, но приблизителният принцип е следният). Но това са две различни операции върху базата данни (различни бази данни). Ако работим с асинхронна репликация, тогава може да се случи прекъсване на репликацията поради повреда в момент, когато първата операция вече е преминала, а втората все още не е започнала. В резултат на това имаме нарушение на последователността на базата данни, което е доста трудно да се улови, тъй като транзакциите като такива са завършени успешно, но бизнес свързаността на групата от транзакции е нарушена. Следователно, от гледна точка на целостта на базата данни, би било по-добре, ако „върнем назад“ цялата операция по продажбата, запазвайки последователността, а не само една транзакция. Всеки доставчик решава този проблем при репликацията по свой собствен начин, обикновено чрез прилагане на така наречените групи за последователност, за които операциите за репликация се извършват по свързан начин.

Ако работите с бази данни и използвате асинхронна или полусинхронна репликация, имайте предвид тази характеристика на асинхронността, тъй като се прилага за репликация на база данни и подобни задачи.