Поиск по этому блогу

26.07.2016

Обновление Junos на примере EX2200

Меня во многом устраивают младшие модели коммутаторов juniper ex:
  • отличный cli;
  • хороший функционал;
  • относительно небольшое количество багов.
Но то, как реализована в junos работа с файловой системой - это полный *****. Иной раз только по этой причине нет желания использовать оборудование в проектах, где бесперебойное питание обеспечить нельзя. Вот представьте, что у вас не коммутатор, а сервер с ОС FreeBSD. Никому не придет в голову выключать сервер без предварительной остановки (halt) операционной системы. Особняком стоит ex9200, которой при наличии двух RE еще нужно постараться сломать, но однажды это удалось, когда RE загрузился в single mode.
В базе знаний советую ознакомиться с [EX/SRX] Recovering from file system corruption during a system reboot, NAND media utility checks for bad blocks in the NAND flash memory и [EX] Switch boots from backup root patition after file system corruption on the primary root partition.

Подготовка к обновлению


Для ex4200 архивы с junos стали не влезать на раздел даже после удаления "лишних" файлов. Поэтому стал копировать в шеле в /var/tmp/. Если делать из cli с указанием /var/tmp/ в качестве назначения, то сначала он будет копировать в раздел на котором места нет, а потом якобы должен будет переместить в /var/tmp/.
Ниже показана очистка флешки и проверка свободного места в разделах.
ex2200> request system storage cleanup    
Please check the list of files to be deleted using the dry-run option. i.e.
request system storage cleanup dry-run
Do you want to proceed ? [yes,no] (no) yes

fpc0:
--------------------------------------------------------------------------

List of files to delete:
[пропущено]
708B Dec 17 2012 /var/lost+found/#00045
[далее еще куча таких файлов в lost+found.
Ну вот как быть уверенным в стабильной работе ОС? ]


ex2200> start shell

% df -h | grep -v mnt
Filesystem Size Used Avail Capacity Mounted on
/dev/da0s1a 184M 105M 64M 62% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/md9 126M 12K 116M 0% /tmp
/dev/da0s3e 123M 3.2M 110M 3% /var
/dev/da0s3d 369M 132K 339M 0% /var/tmp
/dev/da0s4d 62M 274K 57M 0% /config
/dev/md10 59M 17M 37M 31% /var/rundb
procfs 4.0K 4.0K 0B 100% /proc
%
Проверить целостность флешки.
% su
Password:
root@ex2200:RE:0% nand-mediack -C
Media check on da0 on ex platforms
root@ex2200:RE:0%exit
% exit
exit

{master:0}
Повезло, ошибок нет. На всякий случай еще раз переформатировать раздел для последующей установки.
ex2200> request system snapshot slice alternate 
fpc0:
--------------------------------------------------------------------------
Formatting alternate root (/dev/da0s2a)...
Copying '/dev/da0s1a' to '/dev/da0s2a' .. (this may take a few minutes)
The following filesystems were archived: /
Скачать с ftp и проверить md5
% cd /var/tmp/
% fetch ftp://999.1.1.1/junos/jinstall-ex-2200-12.3R12.4-domestic-signed.tgz
jinstall-ex-2200-12.3R12.4-domestic-signed.tgz 3% of 95 MB 643 kBps
% md5 jinstall-ex-2200-12.3R12.4-domestic-signed.tgz
MD5 (jinstall-ex-2200-12.3R12.4-domestic-signed.tgz) = 73759d24a949181dcfe6111c0df20d1d

Обновление Junos на коммутаторе Juniper EX2200 


Только теперь можно вернуться в cli и запустить установку. И еще ключ force не забыть добавить. Как-то обновлял коммутатор ex4200, а он в непонятный режим вывалился без части файлов и хорошо еще удаленно смогли консолью подключиться и перезагрузить с рабочего слайса командой request system reboot slice alternate. Со второй попытки и с ключем force обновиться получилось. Теперь вот "на воду дуть" приходится.
ex2200> request system software add no-copy delay-restart force /var/tmp/jinstall-ex-2200-12.3R12.4-domestic-signed.tgz
Посмотреть текущее время.
ex2200> show system uptime 
Перезагрузиться через 840 минут.
ex2200> request system reboot in 840 
Отменить перезагрузку, если не устраивает время.
ex2200>clear system reboot
После перезагрузки надо накатить новую версию на старый слайс и дождаться(!) выполнения команды:

ex2200> request system snapshot slice alternate 
fpc0:
--------------------------------------------------------------------------
Formatting alternate root (/dev/da0s2a)...
Copying '/dev/da0s1a' to '/dev/da0s2a' .. (this may take a few minutes)
The following filesystems were archived: /
Дополнительно можно почитать про установку junos с usb и про auto-snapshot.