В своей прошлой статье я рассмотрел миграцию данных с SAN, сейчас я хочу остановиться на другом типе миграции, а именно миграции NAS. Переносить данные мы будем с CIFS и NFS, расположенных на vfiler'ах NetApp на VNX. В целом я не могу сказать, что данная процедура сложна, но, как и всегда, присутствуют некоторые нюансы, о которых лучше знать заранее. В статье я опишу свой опыт, приобретенный за время работы в Storage and Virtualization team в ICL Services и дам рабочую процедуру.
Информация, которую нужно собрать перед миграцией
Начиная миграцию, лучше заранее подготовить все, что вам может понадобиться, чтобы в процессе не приходилось отвлекаться на эту деятельность.
Итак, нам нужно:
— IP адрес и VLAN для VDM (Virtual Data Mover)
— Имя и размеры файловых систем
— Имена шар
— Права доступа к шарам
— Размеры квот.
Правила для Firewall
Убедимся, что на firewall на обоих концах у нас открыты соответствующие порты:
CIFS
Source | Destination | Protocol |
---|---|---|
CIFS client | VDM | 53 TCP/UDP 88 TCP/UDP 111 TCP/UDP 137 TCP/UDP 138 UDP 139 TCP 389 TCP/UDP 445 TCP 464 TCP/UDP 636 TCP/UDP 12345 TCP 3268 UDP |
VDM | AD Server | 53 TCP/UDP 88 TCP/UDP 111 TCP/UDP 137 TCP/UDP 138 UDP 139 TCP 389 TCP/UDP 445 TCP 464 TCP/UDP 636 TCP/UDP 12345 TCP 3268 UDP |
NFS
Source | Destination | Protocol |
---|---|---|
NFS Client | VDM | 111 TCP/UDP 2049 TCP/UDP 2079 TCP/UDP 1234 TCP/UDP 31491 UDP 49152-65535 TCP/UDP |
После того как необходимая для начала миграции информация собрана, оповестим все заинтересованные стороны, согласуем время простоя и начинаем миграцию…
Я в основном пользуюсь CLI и буду приводить примеры из него, но все описанные в статье действия можно сделать и через GUI.
Настройка VNX
В первую очередь создаем интерфейс: (вы же запросили IP?)
server_ifconfig server_2 -create -Device lacp0 -name vnx01-vdm01 IP 172.XXX.XXX.XXX 255.255.255.224 172.XXX.XXX.XXX vlan=XXXX
Проверим созданный интерфейс:
server_ifconfig server_2 -a
Вывод будет примерно такой:
server_2:
vnx02-vdm5 protocol=IP device=lacp0
inet=172.XXX.XXX.XXX netmask=255.255.255.224 broadcast=172.XXX.XXX.XXX
UP, Ethernet, mtu=1500, vlan=2836, macaddr=XX:XX:XX:XX:XX:XX:XX:XX
Заодно проверим роутинг:
server_route server_2 –list
Теперь создадим VDM:
nas_server -name VNX01-VDM01 -type vdm -create server_2
И присоединим интерфейс к VDM:
nas_server -vdm VNX01-VDM01 -attach vnx01-vdm01
Проверим интерфейс на VDM:
nas_server -list server_2 –vdm
Сейчас нам нужно создать файловую систему для NAS, и, само собой, размер файловой системы целевого NAS должен быть больше или равен размеру файловой системы исходного NAS Создаем:
nas_fs -name fs_vnx01-vdm01 -create size=3000G pool="Pool NAS" -o slice=yes
Монтируем файловую систему:
server_mount VNX01-VDM01 fs_vnx01-vdm01 /fs_vnx01-vdm01
Проверяем, что примонтировалось успешно:
server_mount server_2
Создаем Quotas Tree:
nas_quotas -on -tree -fs fs_vnx01-vdm01 -path /r2_datastore01
Устанавливаем лимиты:
nas_quotas -edit -tree –fs fs_vnx01-vdm01 –block 3145728000: 2097152000 3
Проверяем установленные лимиты:
nas_quotas -report -tree -fs fs_vnx01-vdm01
А сейчас приступим к созданию CIFS шар. Для начала нам нужно создать CIFS сервер:
server_cifs VNX01-VDM360 -add compname=vnx02-vdm360,domain=domain.local,interface=vnx02-vdm360
Включаемся в домен:
server_cifs VNX02-VDM360 -Join compname=VNX02-VDM360,domain=domain.local,admin=nasadmin,ou="ou=NAS"
Создаем первую CIFS шару:
server_cifs VNX02-VDM360 -list -name th2 /fs_vnx01-vdm01/ th2
И NFS:
server_export VNX01-VDM01 -P nfs -o root=172.XXX:XXX:XXX:172.YYY.YYY.YYY,rw=172.XXX:XXX:XXX:172.YYY.YYY.YYY
Таким образом, мы закончили конфигурирование NAS на destination стороне. Теперь нам нужно перенести данные NetApp, находящемся на сайте на A, на VNX на сайте B. Для того чтобы минимизировать возможные риски, а также сократить время простоя, я хочу предложить вам процедуру, по которой проводил все прошлые миграции и эффективность которой подтвердил на собственной практике. Надеюсь пригодится и вам.
Preparation infrastructure
1.1 Мапим шары (в инструкции выше мы этот шаг выполнили)
1.2 Запускаем full копирование с vfiler на VDM средствами утилиты EMCCOPY для CIFS и rsync для NFS
1.3 Проверяем логи EMCCOPY или/и rsync
1.4 Копируем права c помощью утилиты LGDUP
1.5 Проверям логи LGDUP
1.6 Запускаем дифференциальное копирование
1.7 Проверяем логи EMCCOPY и/или rsync
Go move
2.1 Удаляем таски EMCCOPY или rsync из планировщика
2.2 Останавливаем приложения, использующие мигрируемый vfiler
2.3 Отмонтируем диски NFS/CIFS от клиентов
2.4 Выводим vfiler из домена
2.5 Сохраняем в надежное место конфигурацию vfiler
2.6 Отключаем доступ к vfiler для всех групп кроме той, из-под которой выполнялось копирование
2.7 Удаляем IP адреса у vfiler
2.8 Добавляем ранее используемые vfiler'ом адреса к VDM
2.10 Вводим VDM в домен под именем vfiler
2.11 Проверяем доступ
2.12 Монтируем диски к клиентам
2.13 Проверяем права.
На этом все. Как и в случае с миграцией SAN, если вы все сделали правильно, хост не заметит того, что он работает уже с другим NAS. Приводить команды для работы с vfiler не вижу смысла, так как вы можете использовать любой другой NAS.
Простую инструкцию по работе с EMCCOPY можно почитать тут.
Rsync, я думаю, и так уже всем хорошо знаком (да и emccopy по сути — это robocopy).
В качестве примера — мои скрипты для EMCCOPY
EMCCOPY DIFF Script
ECHO ON
REM ===========================================================================
REM
cd E:\EMC\EXE
for /f "tokens=1,2,3 delims=/ " %%i in ('date /t') do set var1=%%k_%%i_%%j
for /f "tokens=1,2 delims=: " %%i in ('time /t') do set var2=%%i_%%j
set var3=%var1%_%var2%.log
set var4=%var1%_%var2%.err
REM
REM =================================================================
REM
for /f "tokens=1,2,3 delims=/ " %%i in ('date /t') do echo%%k_%%i_%%j>>E:\EMC\SCRIPTS\netap01_vfiler1\Progress.txt
for /f "tokens=1,2 delims=: " %%i in ('time /t') do echo %%iH%%j>>E:\EMC\SCRIPTS\netap01_vfiler1\Progress.txt
E:\EMC\EXE\emcopy64 \\netapp\data \\vnx01-vdm01.domain.local\data /xd .snapshot /o /purge /i /lg /secfix /preserveSIDh /s /stream /de /sdd /c /r:3 /w:1 /th 16 /log:e:\EMC\LOGS\vnx01-vdm01\data_%var3% > e:\EMC\LOGS\vnx01-vdm01\data_%var4%
EMCCOPY LGDUP
@ECHO ON
REM ===========================================================================
REM
cd E:\EMC\EXE
for /f "tokens=2,3,4 delims=/ " %%i in ('date /t') do set var1=%%k_%%i_%%j
for /f "tokens=1,2 delims=: " %%i in ('time /t') do set var2=%%i_%%j
set var3=dm2_%var1%_%var2%.log
set var4=dm2_%var1%_%var2%.err
REM
REM =================================================================
REM
lgdup -v -l E:\EMC\LOGS\vnx01-vdm01\lgdup_vnx01-vdm01.log \\172.XXX.XXX.XXX \\vnx01-vdm01
Если будут какие-либо вопросы или дополнения, а, может, и советы — всегда буду рад слышать. Всем легких миграций!