紅帽儲存管理1——可信任儲存池和brick的管理

來源:互聯網
上載者:User

標籤:紅帽儲存管理   可信任儲存池   brick建立   

紅帽儲存管理1

一、可信任儲存池的管理

    儲存池是一個儲存伺服器的集合,當一台伺服器開啟glusterd服務時,可信任儲存池只有它自己本身,那麼我們要將其他的伺服器加入可信任儲存池該怎麼加呢?命令# gluster peer probe [server],前提是其他的伺服器也必須開啟glusterd服務,[Server]可以是ip地址也可以是伺服器名,前提是伺服器名必須能夠被解析。

[[email protected] ~]# gluster peer probe rhs1peer probe: success.[[email protected] ~]# gluster peer probe rhs2peer probe: success.

    查看儲存池狀態

[[email protected] ~]# gluster peel statusNumber of Peers: 2Hostname: rhs1Uuid: 149365ef-448e-421f-8971-e81183240c49State: Peer in Cluster (Connected)Hostname: rhs2Uuid: 7a131594-9b15-4e4d-8a50-86ec4126e89cState: Peer in Cluster (Connected)

    或者可以用一下命令查看儲存池中都有哪些伺服器

[[email protected] ~]# gluster pool listUUID                                   Hostname        State149365ef-448e-421f-8971-e81183240c49    rhs1            Connected7a131594-9b15-4e4d-8a50-86ec4126e89c    rhs2            Connecteddb270220-90e7-4368-805e-7c7d39db37c8    localhost       Connected

 

    當然儲存池可以加入伺服器,也可以剔除伺服器,命令如下

    # gluster peer detach [server]

    server是伺服器名,前提也是要能夠被解析。

[[email protected] ~]# gluster peer detach rhs2peer detach: success[[email protected] ~]# gluster pool listUUID                                   Hostname        State149365ef-448e-421f-8971-e81183240c49    rhs1            Connecteddb270220-90e7-4368-805e-7c7d39db37c8    localhost       Connected

 

拓展:

    如果要利用儲存池建立volume,那麼儲存池中的所有伺服器都必須有RDMA裝置(RDMA或者RDMA over TCP)。那到底什麼是RDMA裝置?

    RDMA(Remote Direct Memory Access)全名是"遠程直接資料存取",讓電腦可以直接存取其它電腦的記憶體,而不需要經過處理器耗時的傳輸。

    RDMA是一種使一台電腦可以直接將資料通過網路傳送到另一台電腦記憶體中的特性,將資料從一個系統快速移動到遠程系統儲存空間中,而不對作業系統造成任何影響,這項技術通過消除外部儲存空間複製和文本交換操作,因而能騰出匯流排空間和CPU周期用於改進應用系統效能,從而減少對頻寬和處理器開銷的需要,顯著降低了時延。

    RDMA是一種網卡技術,採用該技術可以使一台電腦直接將資訊放入另一台電腦的記憶體中。通過最小化處理過程的開銷和頻寬的需求降低時延。RDMA通過在網卡上將可靠傳輸協議固化於硬體,以及支援零複製網路技術和核心記憶體旁路技術這兩種途徑來達到這一目標。(拓展資料來源於百度文庫   http://wenku.baidu.com/link?url=vSklCvlJfBUTTDaYq7707SghZt7WB1z_VozGaD0HdvNYTHeB16JX58kYmmtGxzEFZBLvBH7EBuZvZCmzMShOJgxu7I2VvEvMmZM4BPf-TAC)

 

二、brick的建立與管理

    Brick是紅帽儲存的基本單元,是伺服器提供儲存服務的物理空間,是真正的資料存放區的地方,一台伺服器上可以建立許多brick,但是前提是要控制宕機產生的資料丟失的風險。

    建立brick的方法和建立邏輯卷的方法基本相同。

    之前我們搭建紅帽儲存學習環境的時候建立了一個邏輯分區/dev/vda5(見第一篇部落格:環境搭建)

Device Boot      Start         End      Blocks  Id  System/dev/vda1  *           3         506      253952  83  LinuxPartition 1 does not end on cylinderboundary./dev/vda2             506        6602    3072000   83  LinuxPartition 2 does not end on cylinderboundary./dev/vda3            6602        7618      512000  82  Linux swap / SolarisPartition 3 does not end on cylinderboundary./dev/vda4            7618       20805    6646744    5  Extended/dev/vda5            7618       20805    6646712+  8e  Linux LVM

     建立pv(phsical volume物理卷)

[[email protected] ~]#pvcreate /dev/vda5    (這裡還有個選項的,以後再詳細講)

    建立vg(volume group卷組)     

[[email protected] ~]#vgcreate vg_bricks /dev/vda5  (這裡也有個選項的,也以後再講)

    接下來我們查看vg

[[email protected] ~]# vgs VG        #PV #LV #SN Attr   VSize VFree vg_bricks   1   0   0wz--n- 6.34g 6.34g

    下面我們就可以在vg中建立brick了

    建立瘦池(thinly pool)

[[email protected] ~]# lvcreate -L 1G -T vg_bricks/thinlypool (–T:瘦池thinlypool為瘦池的名字) Logical volume "lvol0" created Logical volume "thinlypool" created

    在瘦池中建立名為brick0的brick

[[email protected] ~]# lvcreate -V 1G -T vg_bricks/thinlypool -n brick0   (-n:名字) Logical volume "brick0" created

    查看lvs

[[email protected] ~]# lvs LV         VG        Attr       LSize Pool       Origin Data%  Move Log Cpy%Sync Convert brick0     vg_bricks Vwi-a-tz-- 1.00gthinlypool          0.00                          thinlypool  vg_bricks twi-a-tz--1.00g                   0.00

 

拓展:

    thinly-provisioned LVs是在rhel6.3中作為技術預覽引入,在rhel6.5和rhel7中全部支持的lvm技術

工作原理:

    在建立Thin“瘦”卷時,預分配一個虛擬邏輯卷容量大小,而只是在實際寫入資料時才分配物理空間給這個卷。這樣我們可以輕易的建立出總邏輯容量超出物理磁碟空間的多個“精簡卷”,而無須為將來可能達到的資料量提前“買單”。在應用產生的資料確實需要增加磁碟機時,我們也可以靈活地線上調整卷的大小。

    Thin provisioned的功能。Thin Provisioned的最大特點在於可以對儲存資源進行按需動態分配,即對儲存進行了虛擬化管理。例如,某位使用者向伺服器管理員請求分配10TB的資源。雖然可能確實需要10TB的實體儲存體容量,但根據當前使用方式,分配2TB就已足夠。因此,系統管理員準備2TB的實體儲存體,並給伺服器分配10TB的虛擬卷。伺服器即可基於僅占虛擬卷容量1/5的現有物理磁碟池開始運行。這樣的“始於小”方案能夠實現更高效地利用儲存容量。

    在標準的邏輯卷中磁碟空間在建立時就會佔用卷組的空間,但是在瘦(thin)卷中只有在寫入時才會佔用儲存池"thinpoolLV"中的空間。一個thin邏輯卷建立前必須建立thinpoolLV,一個thinpoolLV由兩部分組成:一個大的dataLV(資料卷)用來儲存資料區塊,和一個metadateLV(中繼資料卷)。metadata中記錄了thin卷中每個塊資料的所屬關係。(說簡單點就是metadata中儲存索引,data中儲存真實資料,當你訪問資料時,先通過索引再訪問資料,因為你每次首先訪問的不是真實資料,所有就像C語言中鏈表一樣,理論上儲存的資料可以無限大,並且動態可調)(拓展資料來源於百度文庫http://wenku.baidu.com/link?url=iEAKTAIj4Iw8EE5nu16fUaYk7oNilxV203CDyWPKHaQpV7Tnf03H2nXKYbSAHszP7Og0F8xeVwxQofm1dDYc7tkbO80Aaz9kO7aiIblRTu_)

 

    關於瘦池我在這裡示範一個例子

    建立一個1G的瘦池,在瘦池裡面可以建立一個遠大於1G的brick

[[email protected] ~]# lvcreate -L 1G -T vg_bricks/spool  Logical volume "lvol0"created  Logical volume "spool"created[[email protected] ~]# lvcreate -V 2G -T vg_bricks/spool -n brick0  Logical volume "brick0"created[[email protected] ~]# lvs  LV     VG       Attr       LSize Pool  Origin Data% Move Log Cpy%Sync Convert  brick0 vg_bricks Vwi-a-tz-- 2.00g spool          0.00                           spool  vg_bricks twi-a-tz-- 1.00g                0.00

 

 

    brick建立後要進行格式化,並掛載在本地

[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/brick0meta-data=/dev/vg_bricks/brick0  isize=512   agcount=8, agsize=32768 blks        =                      sectsz=512   attr=2, projid32bit=0data    =                      bsize=4096   blocks=262144,imaxpct=25        =                       sunit=0      swidth=0 blksnaming  =version 2             bsize=4096   ascii-ci=0log     =internal log          bsize=4096   blocks=2560,version=2        =                      sectsz=512   sunit=0 blks,lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0

    這裡有一個選項-i,表示inode size必須為512位元組

    建立掛載點

[[email protected] ~]# mkdir /bricks/brick0 -p

    必須設定開機自動掛載

[[email protected] ~]# echo"/dev/vg_bricks/brick0 /bricks/brick0 xfs defaults 0 0" >>/etc/fstab[[email protected] ~]# mount –a[[email protected] ~]# df -ThFilesystem           Type   Size Used Avail Use% Mounted on/dev/vda2            ext4   2.9G 1.6G  1.2G  58% /tmpfs                tmpfs  499M    0  499M   0% /dev/shm/dev/vda1            ext4   241M  30M  199M  13% /boot/dev/mapper/vg_bricks-brick0                     xfs   1014M  33M  982M   4% /bricks/brick0

    我們的brick就已經做好了

    紅帽儲存管理伺服器3之前的版本volume是直接使用掛載位置/bricks/brick0,而最新的版本是必須要在掛載目錄/bricks/brick0下建立一個或者多個子目錄,volume可使用其中任何一個子目錄,所以在這裡還要在/bricks/brick0下面建立一個子目錄,這裡取名為brick

[[email protected] ~]# mkdir /bricks/brick0/brick

 

為了以後操作方便快捷,在這裡我把建立brick寫成了一個指令碼,方便以後操作

[[email protected] ~]# cat createbricks.sh#!/bin/bashlvcreate -L 1G -Tvg_bricks/thinlypool_"$1";lvcreate -V 1G -Tvg_bricks/thinlypool_"$1" -n brick"$1";mkfs.xfs -i size=512/dev/vg_bricks/brick"$1" -f;mkdir /bricks/brick"$1" -p;echo "/dev/vg_bricks/brick"$1"/bricks/brick"$1" xfs defaults 0 0" >> /etc/fstab;mount -a;mkdir /bricks/brick"$1"/brick;[[email protected] ~]# chmod a+x createbricks.sh

然後發布下去

[[email protected] ~]# ./distributefiles.sh /root/createbricks.sh /root/createbricks.sh

Rhs0裡面的brick編號就是1,2,3…

Rhs1裡面的brick編號就是11,12,13…

Rhs2裡面的brick編號就是21,22,23…


指令碼用法就是#./createbricks.sh [數字]例如 

[[email protected]~]# ./createbricks.sh 1 Logical volume "lvol0" created Logical volume "thinlypool_1" created Logical volume "brick1" createdmeta-data=/dev/vg_bricks/brick1  isize=512   agcount=8, agsize=32768 blks        =                      sectsz=512   attr=2, projid32bit=0data    =                      bsize=4096   blocks=262144,imaxpct=25        =                      sunit=0      swidth=0 blksnaming  =version 2              bsize=4096   ascii-ci=0log     =internal log          bsize=4096   blocks=2560,version=2        =                      sectsz=512   sunit=0 blks,lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0[[email protected] ~]# df -ThFilesystem           Type   Size Used Avail Use% Mounted on/dev/vda2            ext4   2.9G 1.6G  1.2G  58% /tmpfs                tmpfs  499M    0  499M   0% /dev/shm/dev/vda1            ext4   241M  30M  199M  13% /boot/dev/mapper/vg_bricks-brick1                     xfs   1014M  33M  982M   4% /bricks/brick1

 

    那麼移除brick的方法和移除邏輯卷的方法一樣

    第一步,先卸載

[[email protected] bricks]# umount /bricks/brick1

    第二步,刪除/etc/fstab中的條目

    第三步,刪除建立的掛載點

[[email protected] bricks]# rm -rf /bricks/brick1

    第四步,刪除邏輯卷

[[email protected] bricks]# lvremove vg_bricks


本文出自 “0基礎學linux” 部落格,請務必保留此出處http://huangmh77.blog.51cto.com/10041435/1660789

紅帽儲存管理1——可信任儲存池和brick的管理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.