Juniper SRX (Junos OS)作業系統升級System Upgrade
Juniper SRX (Junos OS)作業系統升級System Upgrade
在開始安裝之前,有些資訊您必須先知道:
早期的Juniper SRX網路設備運行Junos OS 9.6或更早版本,是使用單根分區方案(the single-root
partitioning scheme),由於主要和備份Junos OS映像都位於同一個根分區上,因此如果根文件系統中存在損壞,則系統將無法啟動。
而現在出廠的Juniper
SRX網路設備運行在Junos OS 10.0或更新版本,是使用雙根分區方案(the dual-root partitioning scheme),它通過將主要和備份Junos OS映像保留在兩個可獨立啟動的根分區中來防範此情況。
如果主根分區損壞,則系統仍可從位於備份根分區的Junos OS映像進行啟動,並保持功能完整。
在單根分區方案上安裝新版本的Junos OS並不會影響系統分割區結構,您必須使用其他方法來將單根分區方案分割成雙根分區方案。
而雙根分區系統的好處在哪裡?
最大的好處就是增加系統的穩定性,正常的系統都能順利的從主要系統來開機,而若系統開機時偵測到上一次的開機過程是不正常的,例如系統軟體故障或是突然停電等情形,就會自動從備援系統來開機,好讓系統能繼續正常營運,怎樣,好用吧!
只是當系統從備份根分區來開機時,Juniper SRX設備面板的status燈號會亮紅燈警示,所以記得不要人為中斷Juniper SRX設備的開機過程,這樣會增加設備管理員的困擾的。另外若是屬於設備硬體方面的故障,則雙根分區系統也是要投降的。
一般我們將系統升級後的影響:
因為現在出廠的Juniper
SRX網路設備是運行在Junos OS 10.0或更新的版本,是使用雙根分區方案,因此當您執行JUNOS作業系統升級之後,新的JUNOS版本會安裝在主根分區,而原來的舊的JUNOS版本會被移動到備份根分區(變成可以被Downgrade的版本)。
而使用雙根分區方案,SRX系列設備首先嘗試從主根分區(primary root partition)來啟動Junos軟件。 如果失敗,那麼它將嘗試從默認儲存媒體的備份根分區(backup root partition)上來啟動。 即使從儲存媒體的備份根分區來啟動Junos軟件,SRX系列設備仍可正常運行。
可是這樣會產生一個問題,若我需要用到新版JUNOS的功能,而備份根分區卻只是升級前的舊版本,一旦系統從備份根分區開機的話,不是會造成新版JUNOS的功能無法使用的窘境嗎?沒錯,所以我們必須讓主根分區與備份根分區的Junos版本達成一致。
而要完成這個目標,有許多的方法可以達成,我們將其分成會影響系統分割區結構與不會影響系統分割區結構兩種:
不會影響系統分割區結構
因為現在出廠的Juniper
SRX網路設備使用的是雙根分區方案,所以通常不需考慮單根分區方案。
方法一:在此感謝Edson網友提供了更好用的辦法,使用系統快照(system
snapshot)命令,本人也推薦使用此方法,因為此方法不需重新啟動設備中斷服務即可達成目標,並且只須約3分鐘即可完成,請在CLI命令列的操作模式(operations mode)下執行以下命令:
root@SRX210> request system snapshot slice alternate
此命令分成兩種情況:
若系統從主要根分區來啟動:此為一般正常的開機情況,會將主根分區中的JUNOS複製到備份根分區中。
以下為實作示範:
login: root
Password:
--- JUNOS 12.1X46-D65.4 built
2016-12-30 01:34:30 UTC
root@srx210% cli
root@srx100> show system snapshot media internal /* 執行前先查詢根分區的資訊 */
Information for snapshot on
internal (/dev/da0s1a ) (primary)
Creation date: Dec 13 00:15:50 2018
JUNOS version on snapshot:
junos : 12.1X46-D81-domestic /*
執行根分區同步前的主根分區的JUNOS版本為D81 */
Information for snapshot on
internal (/dev/da0s2a ) (backup)
Creation date: Dec 10 02:57:21 2018
JUNOS version on snapshot:
junos : 12.1X46-D76-domestic /* 執行根分區同步前的備份根分區JUNOS版本為D76 */
root@srx100> request system snapshot slice alternate /* 執行根分區同步命令 */
Formatting alternate root (/dev/da0s2a )...
Copying '/dev/da0s1a ' to '/dev/da0s2a ' .. (this may take a few minutes)
The following filesystems were archived: /
/* 將主根分區中的JUNOS複製到備份根分區中 */
root@srx100> show system snapshot media internal /* 執行根分區同步後查詢根分區的資訊 */
Information for snapshot on
internal (/dev/da0s1a )
(primary)
Creation date: Dec 13 00:15:50 2018
JUNOS version on snapshot:
junos : 12.1X46-D81-domestic /*
執行根分區同步後主根分區的JUNOS版本不變 */
Information for snapshot on
internal (/dev/da0s2a )
(backup)
Creation date: Dec 13 00:46:39 2018
JUNOS version on snapshot:
junos : 12.1X46-D81-domestic /* 執行根分區同步後備份根分區的JUNOS版本變更為D81 */
root@srx100>
若系統從備份根分區來啟動:此為主根分區中的JUNOS系統疑似故障所產生的開機情況,會將備份根分區中的JUNOS複製到主根分區中。
以下為實作示範:
login: root
Password:
--- JUNOS 12.1X46-D65.4 built
2016-12-30 01:34:30 UTC /* 從主根分區開機的JUNOS版本為D65.4 */
root@srx210% cli
root@srx210> show system software backup /*
備份根分區JUNOS版本為D76 */
Backup JUNOS package information:
File name: /altroot/cf/packages/junos-12.1X46-D76-domestic
File size: 148700683
root@srx210>
上面為示範前的系統根分區版本,接下來我們要故意中斷設備的開機過程好進行示範,我們先將設備重開機,並在開機到一半時拔掉電源,然後再接上電源重新開機,待開機完成後從console來登入系統,就會出現下面的訊息:
login: root
Password:
--- JUNOS 12.1X46-D76 built
2018-04-10 03:44:40 UTC
***********************************************************************
**
**
** WARNING: THIS DEVICE HAS
BOOTED FROM THE BACKUP JUNOS IMAGE
**
**
**
** It is possible that the
primary copy of JUNOS failed to boot up
**
** properly, and so this device
has booted from the backup copy. **
**
**
** Please re-install JUNOS to
recover the primary copy in case **
** it has been corrupted. **
**
**
***********************************************************************
/* 系統從備份根分區開機並出現警示訊息,此時SRX設備ALARM會亮橘燈 */
root@srx210% cli
root@srx210> show system software
Information for junos:
Comment:
JUNOS Software Release [12.1X46-D76]
root@srx210> show system software backup
Backup JUNOS package information:
File name: /cf/packages/???
File size: 0
/* 因為主根分區疑似故障,系統從備份根分區來啟動,所以沒有內容 */
root@srx210> request system snapshot slice alternate
Formatting alternate root (/dev/da0s2a )...
Copying '/dev/da0s1a '
to '/dev/da0s2a ' .. (this
may take a few minutes)
The following filesystems were archived: /
/* 系統將備份根分區的JUNOS系統複製到主根分區 */
root@srx210>
接下來我們重新啟動設備,讓設備能正常從主根分區來啟動,並重新登入系統。
login: root
Password:
--- JUNOS 12.1X46-D76 built
2016-12-30 01:34:30 UTC /* 從主根分區開機的JUNOS系統版本變成D76 */
root@srx210% cli
root@srx210> show system software backup
Backup JUNOS package information:
File name: /altroot/cf/packages/junos-12.1X46-D76-domestic
File size: 148700683
/* 您會發現主根分區的JUNOS系統版本已經從D65.4變成了D76,而備份根分區則不變 */
root@srx210>
注意:若是您發現SRX設備從備份根分區來啟動,您可試著再重新開機一次,若是主根分區的JUNOS系統沒有損壞,通常都會恢復正常的。
方法二:另一個方法是從CLI命令列來安裝新版的Junos系統兩次,只是您必須在命令中加入no-validate 選項(讓安裝的過程不要去檢查JUNOS系統的版本)才行,只是此方法需要中斷設備之運行,並且耗時約30分鐘(在高端設備所花的時間可能會更短,例如SRX100、210開機要6分鐘,而SRX220開機只要3分鐘)。
root@SRX210>
request
system software add <filename.tgz> no-validate
no-copy reboot
會影響系統分割區結構
要使用雙根分區方案安裝Junos OS 10.0或更高版本,還有下列幾種辦法,這些升級方法會在安裝之前先格式化內部媒體:
·
Installation
from the boot loader using a TFTP server
·
Installation
from the boot loader using a USB storage device
·
Installation
from the CLI using the partition option (available in Junos OS Release 10.0)
·
Installation
using the J-Web user interface with the partition option
注意:關於上述的幾種系統升級方式我們必須要注意的是哪些升級方式會將系統內部儲存媒體重新分割,因為這個動作會順便將系統內部儲存媒體上已經儲存的資料清空,對已上線正在運行中的設備會造成重大之影響,執行前請記得先備份重要的資料,千萬要小心,切記!
若您遇到系統損壞,怎麼也開不了機的狀態,可以試著用這些方法來重裝系統,只要不是屬於設備硬體故障的情況,通常都可以恢復正常(前提是您有備份的運行中設定檔可使用)。
關於上述的幾種系統升級方式我們可以參考下列之網路連結:
如果要升級到Junos OS 10.0版而不轉換到雙根分區,請使用傳統的CLI和J-Web用戶界面安裝方法,下列的系統升級方式並不會影響系統分割區結構:
·
Installation
using the CLI
·
Installation
using the J-Web user interface
在開始安裝之前,您還要做下列的檢查動作:
從J-Web介面來安裝作業系統Install Software via J-Web(WebUI)
通過J-Web安裝軟件可說是最簡單的JUNOS OS升級方式,要安裝的新版本的JUNOS OS軟件可以存放在PC個人電腦上,是最方便又簡單的方法。 但是,它至少需要512M B的flash 容量,並且比從CLI安裝軟件慢。
請參閱以下步驟通過J-Web安裝軟件:
1. Select Maintain > Software
> Upload Package.
2.
Specify the 'File to Upload.'
3.
Click Upload and Install
Package to perform the installation.
從CLI介面來安裝作業系統Install Software via CLI
SRX作業系統軟體升級必須按照下面的步驟進行操作:
1.
使用超級終端機或PUTTY連接SRX console埠,以便於升級過程中查看設備重啟和軟體載入狀態。
2.
SRX上開啟FTP服務,並使用具有超級用戶許可權的非root用戶通過FTP用戶端將下載的升級軟體介質上傳到SRX上。
3.
升級前,執行下列的命令來備份舊的軟體及設定:
root@srx100> request system
snapshot
執行系統快照功能,將SRX設備內部媒體裝置(FLASH)的資料全部備份到USB隨身碟上(USB隨身碟上的資料會全部消失),整個過程約10分鐘左右:
此命令會將SRX設備的系統備份到USB隨身碟,整個過程約10分鐘左右。
注意:在開始前請先準備一顆小於16G B的空白USB隨身碟(基本上根據您設備內部媒體的容量大小來決定,但是不能小於您SRX設備內部媒體的容量),因為因為過程中會將整顆隨身碟格式化成FreeBSD的檔案格式,所以USB隨身碟裡面的資料都會消失的。
以下為實作範例:
login: root
Password:
--- JUNOS 12.1X46-D76 built 2018-04-10 03:44:40 UTC
root@srx100% cli
root@srx100>
umass1: SanDisk Ultra, rev 2.10/1.00, addr 4
da1 at umass-sim1 bus 1 target 0 lun 0
da1: <SanDisk Ultra 1.00> Removable Direct Access SCSI-6 device
da1: 40.000MB/s transfers
da1: 14663MB (30031250 512 byte sectors: 255H 63S/T 1869C )
/* 這時將USB隨身碟插入SRX100設備上,在CONSOLE會出現以上的訊息 */
root@srx100> request system snapshot
/* 執行系統快照功能,將SRX設備的系統備份到USB隨身碟 */
Clearing current label...
Partitioning usb media (/dev/da1) ...
Partitions on snapshot:
Partition Mountpoint
Size Snapshot argument
s1a / 4.6G none
s2a
/altroot 4.7G
none
s3e /config
355M none
s3f /var 4.0G none
s4a
/recovery/software 409M
none
s4e /recovery/state 38M none
Copying '/dev/da0s1a '
to '/dev/da1s1a ' .. (this
may take a few minutes)
Copying '/dev/da0s2a '
to '/dev/da1s2a ' .. (this
may take a few minutes)
Copying '/dev/da0s3e' to '/dev/da1s3e' .. (this may take a few
minutes)
Copying '/dev/da0s3f '
to '/dev/da1s3f ' .. (this
may take a few minutes)
Copying '/dev/da0s4e' to '/dev/da1s4e' .. (this may take a few
minutes)
Copying '/dev/da0s4a '
to '/dev/da1s4a ' .. (this
may take a few minutes)
The following filesystems were archived: / /altroot /config /var
/recovery/state
/recovery/software
root@srx100>
4. 載入新版的JUNOS軟體:
命令格式: request system software add <filename.tgz>
no-copy no-validate reboot
下面命令為將安裝包複製到SRX設備:
我們建議您將其複製到 /var/tmp目錄,因該目錄預設擁有較大的儲存空間。
root@srx100> file list /var/tmp
/var/tmp@ -> /cf/var/tmp
root@srx100> file copy ftp://charlie:123456@192.168.66.88/JUNOS/junos-srxsme-12.1R7.9-domestic.tgz /cf/var/tmp/
下面命令為從/var/tmp/目錄安裝JUNOS OS:
root@srx100> request system software add /cf/var/tmp/<filename.tgz> no-copy no-validate reboot
no-copy 選項是為了節省flash空間
no-validate 選項是為了不考慮版本的問題(以便能夠自由的升、降級)
reboot 選項是為了安裝的過程能夠自動重開機
接下來我們另外介紹其他幾種升級方式:
下面命令為使用匿名用戶(user
anonymous)從FTP服務器安裝JUNOS OS:
root@srx100> request system software add
ftp://192.168.66.88/JUNOS/<filename.tgz> no-copy no-validate reboot
注意:請記住在通過FTP傳輸文件時請使用二進制模式(binary mode)。
下面命令為使用一般帳戶從FTP服務器安裝JUNOS OS:
root@srx100> request system software add
ftp://charlie:123456@test.jnpr.net/JUNOS/<filename.tgz> no-copy no-validate reboot
下面命令為從usb隨身碟安裝JUNOS OS:
root@srx100> request system software add /cf/var/tmp/usb/<filename.tgz> no-copy no-validate reboot
關於從usb隨身碟安裝JUNOS OS您可以參考下列的網路連結:
當上述命令執行完成之後,您就只需等待系統自動更新並自動將系統重開機即可完成。
大功告成!
接下來我們開始介紹request system software
add命令partition選項的功能
我們必須要注意的是本升級方式會將系統內部儲存媒體重新分割,因為這個動作會順便將系統內部儲存媒體上的資料清空,會對已上線正在運行中的設備造成重大之影響,千萬要小心,切記!
root@srx100> request system software
add <filename.tgz> no-copy no-validate reboot partition
partition命令會將設備儲存媒體重新分割,並將系統建置成雙根分區方案,並讓主根分區與備援根分區的JUNOS版本都同樣是要被安裝JUNOS版本。
警告:
使用 "request system software add" 命令中的
"partition" 選項將清除媒體的現有內容。僅保留當前配置。在啟動進程之前,必須備份任何重要資料。使用"partition"選項時,格式化和安裝過程將在下次重新開機時運行。因此,我們建議將此選項與"reboot"選項一起使用。這個過程可能需要15到20分鐘。在這段時間內,系統無法通過網路被訪問。
我們可以使用以下命令來查看系統分割區分割情形:
root@srx100> show system storage
partitions
相關資料請參考下列之網路連結:
若要讓SRX設備的主要與備援系統的Junos OS的版本達成一致,其方法二之安裝說明如下:
在正常的情況下,當我們升級新的Junos OS版本時,主根分區與備份根分區的Junos版本會不一致。
root@srx100> request system software add /cf/var/tmp/junos-srxsme-12.1R7.9-domestic.tgz no-copy no-validate reboot
當第一次升級完成後:
展示運行中的主根分區JUNOS版本。
root@srx100> show system software
Information for JUNOS:
Comment:
JUNOS Software Release [12.1R7.9]
展示備份根分區的JUNOS版本。
root@srx100> show system software backup
Backup JUNOS package information:
File name: /altroot/cf/packages/junos-srxsme-12.1R6.5-domestic
File size: 147212956
root@srx100>
我們必須讓主根分區與備份根分區的Junos
OS的版本達成一致,而要完成這個目標,我們就要從CLI命令列來安裝新版的Junos OS兩次即可,只是您必須在命令中加入no-validate
選項才行。
root@srx100> request system software add /cf/var/tmp/junos-srxsme-12.1R7.9-domestic.tgz no-copy no-validate reboot
當第二次升級完成後:
展示運行中的主根分區JUNOS版本。
root@srx100> show system software
Information for JUNOS:
Comment:
JUNOS Software Release [12.1R7.9]
展示備份根分區的JUNOS版本。
root@srx100> show system software
backup
Backup JUNOS package information:
File name: /altroot/cf/packages/junos-srxsme-12.1R7.9-domestic
File size: 147212956
root@srx100>
大功告成!
當您在設備開機過程中切斷電源,導致系統無法完整開機,而JUNOS系統在開機時偵測到上一個開機過程是失敗的、不完整的,系統就會自動從備援根分區來啟動系統,並且在登入console時顯示如下畫面:
SRX100 (ttyu0)
login: root
Password:
--- JUNOS 12.1X46-D40.2 built 2015-09-26 02:25:28 UTC
***********************************************************************
**
**
** WARNING: THIS DEVICE HAS
BOOTED FROM THE BACKUP JUNOS IMAGE
**
**
**
** It is possible that the
primary copy of JUNOS failed to boot up
**
** properly,and so this device has booted from the backup
copy. **
**
**
** Please re-install JUNOS to
recover the primary copy in case **
** it has been corrupted. **
**
**
***********************************************************************
root@srx100%
當console出現以上訊息時,此時設備面板會亮紅燈,而您不必急著重新安裝系統,請先重開機試試看,只要不是因為JUNOS系統檔真的損壞了,那麼JUNOS還是會正常使用當前系統檔來開機的。
所以記得不要人為中斷Juniper SRX設備的開機過程,這樣會增加設備管理員的困擾的。