傳統的存儲架構都存在幾個問題:redis
1),多個controller作cluster,可是某個controller出現問題後會failover形成performance降低算法
2),須要性能調優promise
3),某個盤壞後重構時間很長,並且重構過程當中極有可能出現更多的盤壞,形成數據丟失架構
4),當容量不夠後,擴展須要停機,並且雖然容量增長了,可是性能卻下降了app
而XIV的核心特色是:數據是分佈在全部盤上的,沒有RAID,沒有熱點盤,不須要人工介入,不須要調優。這種特性是由XIV的邏輯架構決定的。分佈式
先來看看幾個XIV中最基本的概念:ide
Partitions
The fundamental building block of a logical volume is known as a partition. 性能
Partition是1MB(1024KB)有兩份,包括a primary copy 或者 secondary copy of data,存放在兩個不一樣module的兩塊不一樣disk上。ui
Logical volumesspa
1,每一個Volume都是由N個1MB的Partition組成,每一個volume都是分佈在全部的disk上。XIV的分佈式算法自動將partition隨機分佈在系統裏全部disk上,這就使得XIV不存在hot-spot
Slice
-Each Partition belongs to a bucket of partitions-a slice
-Slices reside in a disk
-One slice belongs to only one disk.Slice cannot span disks!
-There are 16411 slices in Gen3 system(Gen2 - 16384)
Storage pools
While the hardware resources within the BM XIV Storage System are virtualized in a global sense, the available capacity in the system can be administratively portioned into separate and independent storage pools.
Essentially, storage pools function as a means to effectively manage a related group of similarly provisioned logical volumes and their snapshots.
Storage Pools are Logical
–Allocates hardware resources
–Same performance for all storage pools
–Volumes can be moved between Storage Pools
–Volumes and their clones moved together
–No data movement involved… immediate results
Storage Pools control the storage resources
–Use for specific applications or departments
–Physical and Virtual storage used by volumes
–Limits physical space for clones
–Can be resized as needed… depending on available resources
下圖是Storage Pool和Logical Volume的關係
查看module1上的disk,其中省略了3-11
XIV_1300023>>disk_list module=1:Module:1
Component ID Status Currently Functioning Capacity (GB) Target Status Model Size Serial Firmware Fru Temperature
1:Disk:1:1 OK yes 1TB Hitachi-HUA721010KLA330 924772 PAJ1TBSF GKAOAB0A 30
1:Disk:1:2 OK yes 1TB Hitachi-HUA721010KLA330 924772 PAHYBJTE GKAOAB0A 28
1:Disk:1:12 OK yes 1TB Hitachi-HUA721010KLA330 924772 PAHV2J4F GKAOAB0A 31
XIV_1300023>>pool_list
Name Size (GB) Hard Size (GB) Snapshot Size (GB) Empty Space (GB) Used by Volumes (GB) Used by Snapshots (GB) Locked
prd_db_pool 1013 1013 103 85 0 0 no
Bro_pool 8899 8899 910 5033 309 0 no
能夠看到prd_db_pool這個pool裏有8個volume
XIV_1300023>>vol_list pool=prd_db_pool
Name Size (GB) Master Name Consistency Group Pool Creator Used Capacity (GB)
prd_db_001 103 prd_db_pool admin 0
prd_db_002 103 prd_db_pool admin 0
prd_db_003 103 prd_db_pool admin 0
prd_db_004 103 prd_db_pool admin 0
prd_db_005 103 prd_db_pool admin 0
prd_db_006 103 prd_db_pool admin 0
prd_db_007 103 prd_db_pool admin 0
prd_db_008 103 prd_db_pool admin 0
Distribution table
distribution table在系統啓動的時候建立,包含了Primary和Secondary Partition的映射,還有Module和相應Disk的mapping。當硬件改動時,會建立新的distribution table而後deliver到每一個Module上。每一個Module都包含了一份distribution table。
XIV Running state
當volume的兩份Copy(Primary Copy和Secondary Copy)同時都在時,系統就是在Full Redundancy 狀態。
When the full redundancy of data is compromised due to a disk or module failure, the XIV Storage System immediately identifies the non-redundant partitions and begins the rebuild process. The rebuild process consists of the following activities:
--Creates a new target data distribution
--Makes a copy of the non-redundant partitions and writes them according to the new target distribution. This process is known as rebuilding.
--Simultaneously begins to redistribute the redundant data according to the new target data distribution. This process is known as redistributing.
Important: After an XIV Storage System component failure, rebuild and redistribution begin immediately and at the same time.