SAN及其ZONE

目錄

一、什么是SAN?

二、什么是ZONE?

三、配置ZONE

2.1?核心概念

2.2?劃分原則?

2.3 Zone劃分最佳實踐

2.4 配置語法

1). 基于端口(Domain,Port)的zone語法

2). 基于WWN(World Wide Name)的Zone語法

3). 使用Alias簡化配置

4). 配置文件的創建與管理?

5). 驗證與維護命令

6). 配置類型的選擇

7).?注意事項

2.5?配置案例

1). 環境概述

?編輯2). 配置流程

1. 基于WWPN/Alias的配置

2.基于端口的配置

一、什么是SAN?

存儲區域網絡(Storage Area Network,簡稱SAN)采用網狀通道(Fibre Channel ,簡稱FC,區別與Fiber Channel光纖通道)技術,通過FC交換機連接存儲陣列和服務器主機,建立專用于數據存儲的區域網絡。

WWN是HBA卡用的編號,每一個光纖通道設備都有一個唯一的標識,稱為WWN(world wide name),由IEEE負責分配。在有多臺主機使用磁盤陣列時,通過WWN號來確定哪臺主機正在使用指定的LUN(或者說是邏輯驅動器),被使用的LUN其他主機將無法使用。

以下介紹WWN,WWNN,WWPN的意義與區別:

WWN概念包含WWPN、WWNN。一個不可拆分的獨立設備有WWNN,一個端口有WWPN。

WWN:? ? world wide number 是硬件的全球唯一標示

WWPN:? world wide port number 指光纖端口的端口號,是FC網絡的基本單位,相當于IP網絡里的IP地址或Mac地址

WWNN:? world wide node number 是指節點號

例: 比如一臺SAN交換機,不可拆分,有一個WWNN,它有一堆端口,每個端口有一個WWPN。一塊多口光纖HBA,卡本身有一個WWNN,每個端口有一個WWPN,單口的HBA也是,不過只有一個WWNN和一個WWPN。但主機就沒有WWNN,因為卡和主機是可以分離的,單純一個主機本身并不一定是SAN環境中的設備。

如果是光纖交換機的話WWN和WWNN是一樣的,而WWPN是指每個光纖端口。如果是HBA卡的話,若是只有一個端口則三者可能一樣,若是有多個端口則和交換機差不多.。

對于主機來說:

單個hba卡(單口)的情況下: wwnn只有一個 wwpn和wwnn一樣
單個hba卡(雙口)的情況下: wwnn只有一個 wwpn有兩個
兩個hba卡(單口)的情況下: wwnn有兩個 wwpn有兩個
兩個hba卡(雙口)的情況下: wwnn有 兩個 wwpn有四個

二、什么是ZONE?

????????SAN網絡中一個常用的概念叫做zone,zone在SAN網絡中的作用和以太網絡中的VLAN有些類似。Zone的主要作用就是把Fabric網絡分區,避免不相關的設備之前相互訪問,同時也具有安全的作用。在設備較多的Fabric網絡中,務必要劃分zone。博科交換機支持多種zone,常規zone和特殊zone。常規zone就是我們通常所說的zone,主要作用是隔離設備,把Fabric網絡劃分為多個分區;特殊zone有TI zone,QoS zone和LSAN zone。若非特殊說明,此處所提的zone全部是常規zone。常規zone按照所包含的成員類型不同,可以分為端口zone,WWN zone和混合zone。?

????????一個zone由一組zone成員組成,一個設備可以是一個或多個zone的成員,如設備RAID4既是Zone2的成員也是Zone3的成員。同一個zone內的成員之間可以相互訪問,不在同一個zone內的成員之間不可訪問。如Zone1包括成員Web Server和RAID2,這兩個設備之間可以相互訪問。

三、配置ZONE

2.1?核心概念

Alias:別名,相當于給WWPN起個名字,一方面便于配置,一方面也便于理解

Zone:SAN交換機的配置核心,類似于IP網絡的vlan,同一Zone內的接口相互之間可以互訪
WWPN:光纖端口的端口號,是FC網絡的基本單位,相當于IP網絡里的IP地址或Mac地址
端口編號:類似于交換機的interface,SAN交換機的端口一般也表示為(交換機ID/Domain,端口/port),如1,8就是1號交換機8號端口


CFG:配置文件,一臺交換機僅能生效一個配置文件,因此多個Zone會置于1個配置文件中

2.2?劃分原則?

????????碰到FC-SAN的環境在不做任何配置的情況下默認所有接口都在一個Zone內,接上光纖線直接互通,就是所謂的All in One,當然最佳實踐一定不推薦這么做,主要有兩個問題:

訪問安全層面:所有前端計算節點和所有存儲之間能夠互通,尤其在多集群或多存儲的場景就比較危險


流量安全層面:當一個Zone內出現狀態變更通知RSCN(registered state change notification,RSCN)或者錯誤告警等的時候不會傳播到別的Zone,從而造成影響

2.3 Zone劃分最佳實踐

Zone劃分最佳實踐一般考慮以下兩個維度:

Zone劃分區域

一般不推薦直接用一個大Zone,那應該怎樣劃分才最合理,很多文章都有提到最佳劃分即每個Zone僅包含一個存儲控制器端口和一個業務端口,當然這么做一定沒問題,但是有個小缺點,在很多場景下需要配置的Zone過多,尤其是后期需要增改端口等工作量巨大,也容易出錯,因此以下談談我個人的理解:

首先再引入兩個概念:

同一個Zone端口內相互通信并不是平級,分為Target和Initiator,一般來講存儲段作為Target,服務器端為Initiator,當然這并不絕對,可以手動配置將這兩個角色互換。配置Zone的時候,應該將一個Initiator對應多個Target,這樣在節省大量配置的情況下對安全及性能也不會有影響

Zone劃分單位
Zone劃分基本有兩種方式,一個是基于WWPN/Alias,一個是基于物理端口,兩種方式各有優劣,可根據實際情況進行選擇,主要的區別在于以下兩個場景:

當服務器HBA卡出現故障或者更換HBA卡過后,基于WWPN的方式需要更改配置中的相關WWPN號,而基于端口的方式無需更改任何配置

當SAN交換機接口出現故障需要更換端口時,基于端口的方式就需要重新更改端口進Zone,而此時基于WWPN的方式則配置無需做任何改動

2.4 配置語法

Zone的創建與成員定義(add、delete、replace、show、enable、save)

1). 基于端口(Domain,Port)的zone語法

使用zonecreate命令創建Zone,參數格式為"zone名稱","domain_id,端口號; domain_id,端口號..."

zonecreate "line01", "10,3;10,4"? ? ? ? ??# 創建名為line01的Zone,包含domain 10的端口3和4

zonecreate "ocr_fc1", "1,94;1,68;1,69" # 多端口配置

2). 基于WWN(World Wide Name)的Zone語法

直接使用設備的WWN作為成員,適用于設備更換端口但需保持通信的場景

zonecreate "wwn_zone", "21:00:00:24:ff:48:e2:de;20:01:00:0e:1e:d1:00:ff" ?# 使用WWN號代替上面的端口號

3). 使用Alias簡化配置

通過alicreate命令定義別名,將端口或WWN映射為易記名稱,便于后續Zone配置

alicreate "storage_port", "1,0"? ? ? ? ? ? ? ?# 定義domain 1端口0的別名
alicreate "server_ports", "1,2;1,3;1,4"? ?# 定義多個端口的別名
zonecreate "alias_zone", "storage_port;server_ports" # 引用別名

4). 配置文件的創建與管理?

cfgcreate "配置名稱", "zone1;zone2;..."

cfgcreate "test", "line01;ocr_fc1" ?# 創建名為test的配置文件,包含兩個Zone

cfgadd "test", "wwn_zone"? ? ? ? ? ?# 將wwn_zone添加到test配置中

保存配置:cfgsave命令永久保存當前配置。
激活配置:cfgenable "配置名稱"使配置生效,同一時間僅一個配置可激活。

示例:
cfgsave # 保存配置
cfgenable "test" # 激活名為test的配置

5). 驗證與維護命令

zoneshow:顯示所有Zone及成員詳情110。
cfgshow:查看當前活動的配置文件26。

刪除Zone:zonedelete "zone名稱"26。
從配置中移除Zone:cfgremove "配置名稱","zone名稱"。

6). 配置類型的選擇

Hard Zone(基于端口)
適用于設備固定端口的場景,更換HBA卡無需修改配置。


Soft Zone(基于WWN)
適用于設備頻繁更換端口的場景(如虛擬化環境),但更換HBA卡需更新WWN。


混合Zone
同時包含端口和WWN的Zone,需交換機CPU進行額外驗證。

7).?注意事項

語法分隔符:端口或WWN列表需用分號(;)分隔。
配置文件沖突:激活新配置前需確保舊配置已停用。
權限與保存:所有變更需通過cfgsave保存,否則重啟后失效。

配置示例:

新建配置文件
swd77:admin>cfgCreate “lzlj_idc”

swd77:admin>cfgCreate “lzlj_idc”,“zonename”

新建別名
swd77:admin>AliCreate “HyLocal_ESXi112222_p1”,“51:40:2E:c0:15:54:F5:14”

swd77:admin>Alicreate “H3C_C650_1”,“member1;member2;member3……”

新建zone
swd77:admin>zonecreate “testzonename”, “zonemember1;zonemember2;zone……”

swd77:admin>成員可以是"Domain,Port";“WWN”;“Alias”

swd77:admin>是否成功要看最后能否生效,此條也適用于別名。

將新Zone添加至配置文件
swd77:admin>cfgAdd “lzlj_idc”, “testzonename”

保存自定義的配置
swd77:admin>cfgsave

生效配置文件
swd77:admin>cfgEnable lzlj_idc

swd77:admin>同時只能有一個配置文件生效


重命名別名和zone

swd77:admin>zoneObjectRename “testzonename”, “newzonename”

swd77:admin>zoneObjectRename “HyLocal_ESXi112222_p1”, “newaliname”

zoneObjectRename還適用于cfg重命名。

重命名后需要cfgsave和cfgEnable來使修改生效。

!重命名別名后,相應的zone信息會不會跟著變更?會。

別名、zone增加成員

swd77:admin>aliadd “aliName”, “member[; member…]”

swd77:admin>zoneadd “zoneName”, “member[;member…]”

移除別名、zone成員

swd77:admin>aliremove “aliName”, “member[; member…]”

swd77:admin>zoneremove “zonename”, “member[;member…]”

!如果一個alias中只有一個成員,且這個成員WWN錯誤,如何修改最便捷?

替換別名、zone成員
swd77:admin>zoneobjectreplace “oldZonemember” “newZonemember”

swd77:admin>zoneobjectreplace “oldAliasmember” “newAliasmember”

刪除別名、zone、zone配置文件
swd77:admin>alidelete “aliname”

swd77:admin>zonedelete “zonename”

swd77:admin>cfgdelete “cfgname”

2.5?配置案例

下面以一個典型的SAN環境案例簡要說明下配置

1). 環境概述

典型的三主機,兩臺SAN交換機,一臺雙控的存儲,拓撲如下:


涉及接口及規劃表如下:


2). 配置流程

一般分為三步進行,以下把兩種配置都說明下:

1. 基于WWPN/Alias的配置

配置規劃:


配置流程(以SW-A為例):

創建Alias:

swd77:admin> alicreate "ESXi01_1","11:00:00:00:00:00:00:1a"
swd77:admin> alicreate "ESXi02_1","11:00:00:00:00:00:00:2a"
swd77:admin> alicreate "ESXi03_1","11:00:00:00:00:00:00:3a"
swd77:admin> alicreate "Storage01_1","22:00:00:00:00:00:00:1a"
swd77:admin> alicreate "Storage02_1","22:00:00:00:00:00:00:2a"

創建Zone:

swd77:admin> zonecreate "zone_A1","ESXi01_1,Storage01_1,Storage01_2"
swd77:admin> zonecreate "zone_A2","ESXi02_1,Storage01_1,Storage01_2"
swd77:admin> zonecreate "zone_A3","ESXi03_1,Storage01_1,Storage01_2"

創建CFG:

swd77:admin> cfgcreate "cfg_wwpn","zone_A1;zone_A2;zone_A3"
swd77:admin> cfgenable "cfg_wwpn"
swd77:admin> cfgsave
2.基于端口的配置

配置規劃:


配置流程(以SW-A為例):

創建ZONE(端口也可以創建Alias,但端口本身并不復雜,一般不需要Alias):

swd77:admin> zonecreate "zone_A1","1,2;1,0;1,1"
swd77:admin> zonecreate "zone_A2","1,3;1,0;1,1"
swd77:admin> zonecreate "zone_A3","1,4;1,0;1,1"

創建CFG:

swd77:admin> cfgcreate "cfg_port","zone_A1;zone_A2;zone_A3"
swd77:admin> cfgenable "cfg_port"
swd77:admin> cfgsave

原文鏈接:SAN交換機Zone配置詳解及最佳實踐_san交換機配置-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75095.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75095.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75095.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Springboot框架—單元測試操作

Springboot單元測試的操作步驟: 1.添加依賴spring-boot-starter-test 在pom.xml中添加依賴spring-boot-starter-test 2.在src/test/java下新建java class 3.單元測試入口代碼結構 import org.junit.Test; import org.junit.runner.RunWith; import org.springfra…

用AbortController取消事件綁定

視頻教程 React - 🤔 Abort Controller 到底是什么神仙玩意?看完這個視頻你就明白了!💡_嗶哩嗶哩_bilibili AbortController的好處之一是事件綁定的函數已無需具名函數,匿名函數也可以被取消事件綁定了 //該代碼2秒后點擊失效…

JavaScript性能優化(上)

1. 減少 DOM 操作 減少 DOM 操作是優化 JavaScript 性能的重要方法,因為頻繁的 DOM 操作會導致瀏覽器重繪和重排,從而影響性能。以下是一些具體的策略和技術,可以幫助有效減少 DOM 操作: 1.1. 批量更新 DOM 親切與母體&#xff…

OpenCV 圖形API(14)用于執行矩陣(或圖像)與一個標量值的逐元素乘法操作函數mulC()

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 描述 將矩陣與標量相乘。 mulC 函數將給定矩陣 src 的每個元素乘以一個給定的標量值: dst ( I ) saturate ( src1 ( I ) ? multiplier ) \…

持續集成與Jenkins安裝使用教程

一、持續集成與Jenkins 持續集成(Continuous integration,簡稱CI)指的是,頻繁地(一天多次)將代碼集成到主干。 持續集成的目的,就是讓產品可以快速迭代,同時還能保持高質量。 它的…

TIM定時器

一、TIM定時器 STM32高級定時器實戰:PWM、捕獲與死區控制詳解-CSDN博客 玩轉STM32_rivencode的博客-CSDN博客 二、相關函數 1.TIM_TimeBaseInitTypeDef結構體講解 typedef struct {uint16_t TIM_Prescaler; // 預分頻器,用于設置定時器計數頻…

Python 小練習系列 | Vol.14:掌握偏函數 partial,用函數更絲滑!

🧩 Python 小練習系列 | Vol.14:掌握偏函數 partial,用函數更絲滑! 本節的 Python 小練習系列我們將聚焦一個 冷門但高能 的工具 —— functools.partial。它的作用類似于“函數的預設模板”,能幫你寫出更加靈活、優雅…

開源 PDF.js 文件編輯操作

一、PDF.js PDF.js 是 Mozilla 基金會推出的一個使用 HTML5 構建的 PDF 閱讀器,它完全使用 JavaScript 編寫。作為 Firefox 瀏覽器的默認 PDF 查看器,PDF.js 具有強大的兼容性和穩定性。它不僅支持 PDF 文件的查看和渲染,還提供了豐富的交互…

3D珠寶渲染用什么軟件比較好?渲染100邀請碼1a12

印度珠寶商 Mohar Fine Jewels 和英國寶石商 Gemfields 在今年推出了合作珠寶系列——「Emeralds in Full Bloom」,它的靈感源自花草綻放的春季田野,共有 39 件作品,下面這個以植物為主題的開口手鐲就是其中一件。 在數字時代,像這…

增益調度控制 —— 理論、案例與交互式 GUI 實現

目錄 增益調度控制 —— 理論、案例與交互式 GUI 實現一、引言二、增益調度控制的基本原理三、數學模型與公式推導四、增益調度控制的優勢與局限4.1 優勢4.2 局限五、典型案例分析5.1 案例一:航空飛行控制中的增益調度5.2 案例二:發動機推力控制中的增益調度5.3 案例三:化工…

PyTorch數據加載流程解析

1. 定義最簡單的Dataset import torch from torch.utils.data import Dataset, DataLoaderclass MyDataset(Dataset):def __init__(self, data):self.data data # 假設data是一個列表,如[10, 20, 30, 40]def __len__(self):return len(self.data) # 返回數據總量…

xsync腳本是一個基于rsync的工具

xsync腳本是一個基于rsync的工具,用于在集群間高效同步文件或目錄。以下是xsync腳本的詳細使用方法和配置步驟: 一、xsync腳本的作用 xsync腳本可以快速將文件或目錄分發到集群中的多個節點,避免了手動逐臺復制文件的繁瑣操作。它利用rsync…

250408_解決加載大量數據集速度過慢,耗時過長的問題

250408_解決加載Cifar10等大量數據集速度過慢,耗時過長的問題(加載數據時多線程的坑) 在做Cifar10圖像分類任務時,發現每個step時間過長,且在資源管理器中查看顯卡資源調用異常,主要表現為,顯卡…

Ansible的使用2

#### 一、Ansible變量 ##### facts變量 > facts組件是Ansible用于采集被控節點機器的設備信息,比如IP地址、操作系統、以太網設備、mac 地址、時間/日期相關數據,硬件信息等 - setup模塊 - 用于獲取所有facts信息 shell ## 常用參數 filter…

多模態大語言模型arxiv論文略讀(六)

FashionLOGO: Prompting Multimodal Large Language Models for Fashion Logo Embeddings ?? 論文標題:FashionLOGO: Prompting Multimodal Large Language Models for Fashion Logo Embeddings ?? 論文作者:Zhen Wang, Da Li, Yulin Su, Min Yang,…

MySQL深入

體系結構 連接層:主要處理客戶端的連接進行授權認證、校驗權限等相關操作 服務層:如sql的接口、解析、優化在這里完成,所有跨存儲引擎的操作在這里完成 引擎層:索引是在存儲引擎層實現的,所以不同的存儲引擎他的索引…

智能 SQL 優化工具 PawSQL 月度更新 | 2025年3月

📌 更新速覽 本月更新包含 21項功能增強 和 9項問題修復,重點提升SQL解析精度與優化建議覆蓋率。 一、SQL解析能力擴展 ? 新增SQL語法解析支持 SELECT...INTO TABLE 語法解析(3/26) ALTER INDEX RENAME/VISIBLE 語句解析&#…

數組劃分使元素總和最接近

0劃分 - 藍橋云課 將一個數組劃分為兩個元素總和最接近的兩個數組 要使得兩組權值的乘積最大,根據數學原理,當兩組權值越接近時,它們的乘積就越大。因此,可以將這個問題轉化為一個 0 - 1 背包問題,把所有數的總和的一…

多線程代碼案例(線程池)- 4

目錄 引入 標準庫中的線程池 -- ThreadPoolExecutor 研究一下這個方法的幾個參數 1. int corePoolSize 2. int maximumPoolSize 3. long keepAliveTime 4. TimeUnit unit 5. BolckingQueue workQueue 6. ThreadFactory threadFactory 7. RejectedExecutionHandler h…

C,C++,C#

C、C 和 C# 是三種不同的編程語言,雖然它們名稱相似,但在設計目標、語法特性、運行環境和應用場景上有顯著區別。以下是它們的核心區別: 1. 設計目標和歷史 語言誕生時間設計目標特點C1972(貝爾實驗室)面向過程&#…