ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ blksnap для создания ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ² Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств Π² Linux

Компания Veeam, Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ ПО для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΈ восстановлСния послС Π°Π²Π°Ρ€ΠΈΠΉ, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»Π° для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² состав ядра Linux ΠΌΠΎΠ΄ΡƒΠ»ΡŒ blksnap с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° создания ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ² Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств ΠΈ отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройствах. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°ΠΌΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки blksnap ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° blksnap.so, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ· пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ядра Ρ‡Π΅Ρ€Π΅Π· ioctl-Π²Ρ‹Π·ΠΎΠ²Ρ‹.

ЦСлью создания модуля называСтся организация Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… дисков Π±Π΅Π· остановки Ρ€Π°Π±ΠΎΡ‚Ρ‹ — ΠΌΠΎΠ΄ΡƒΠ»ΡŒ позволяСт Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС всСго Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства, прСдоставив для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ срСз, Π½Π΅ зависящий ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’Π°ΠΆΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ blksnap являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ создания ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ² сразу для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств, Ρ‡Ρ‚ΠΎ позволяСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства, Π½ΠΎ ΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ согласованности состояния Ρ€Π°Π·Π½Ρ‹Ρ… Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств Π² Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.

Для отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² подсистСму Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств (bdev) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прикрСплСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ запросы Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. Π’ blksnap Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ запросы Π½Π° запись, Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ сохраняСт Π΅Π³ΠΎ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ спискС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΌ состояниС ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Π»ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π»ΠΎΡ‡Π½Ρ‹ΠΌ устройством Π½Π΅ мСняСтся, запись Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ Π±Π»ΠΎΡ‡Π½ΠΎΠΌ устройствС производится ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, нСзависимо ΠΎΡ‚ ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поврСТдСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΄Π°ΠΆΠ΅ Π² случаС возникновСния нСпрСдсказуСмых критичСских ошибок Π² blksnap ΠΈ пСрСполнСния мСста, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ измСнСния.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π² Ρ‚ΠΎΠΌ числС позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ послСдним ΠΈ Π»ΡŽΠ±Ρ‹ΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования. Для сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ состояния ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°, Π½Π° любом Π±Π»ΠΎΡ‡Π½ΠΎΠΌ устройствС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ сСкторов, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ измСнСния Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Π€Π‘ Π½Π° Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройствах. Π Π°Π·ΠΌΠ΅Ρ€ области для хранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½, Π΄Π°ΠΆΠ΅ послС создания ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°.

Blksnap основан Π½Π° ΠΊΠΎΠ΄Π΅ модуля veeamsnap, входящСго Π² состав ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Veeam Agent for Linux, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ спСцифики поставки Π² основном составС ядра Linux. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ blksnap ΠΎΡ‚ veeamsnap являСтся задСйствованиС систСмы Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², прикрСпляСмых ΠΊ Π±Π»ΠΎΡ‡Π½ΠΎΠΌΡƒ устройству, вмСсто ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° bdevfilter, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru