一、 ISCSI存儲
本例測試環境:
DELL R620 E5-2630 v2,128G,250SSD*2,Raid1 三臺,安裝Proxmox VE 5.X
Synology DS1817+ 雙核8G .4千兆口(添加一塊10G光纖),2TB*8,Raid1
Synology上已建好Target-1 iqn.2000-01.com.synology:DataCenter001.Target-1fcb817738X
1. 獲取查看iSCSItarget
執行命令
iscsiadm -m discovery -t sendtargets –p <target IP>
root@pve-01:~# iscsiadm -m discovery -t sendtargets -p 10.91.30.224
10.91.30.224:3260,1 iqn.2000-01.com.synology:DataCenter001.Target-1.fcb8177382
2. 登錄iSCSI目標
在各節點上分別執行以下操作登錄iSCSI目標
a.執行命令iscsiadm -m node -T <iSCSI-target> -p <target-IP> -l登錄iSCSI目標:(連接iscsi)
iscsiadm -m node -T iqn.2000-01.com.synology:DataCenter001.Target-1.fcb817738x -p 10.91.30.224 –l
b.爲了重啓系統能自動登錄目標,執行以下命令:(不做此步,重啓iscsi無法連接)
iscsiadm -m node -p 10.91.30.224 –op update -n node.startup -v automatic
現在,在該節點上增加了新的磁盤/dev/sdb(本地磁盤只有/dev/sda一個)。
3. 在iSCSI磁盤 /dev/sdb上創建LVM分區、創建物理卷、創建卷組(只在某一個節點進行如下操作即可。)
a.執行磁盤分區命令:
root@pve-01:/#fdisk /dev/sdb
Welcome to fdisk(util-linux 2.25.2).
Changes will remainin memory only, until you decide to write them.
Be careful beforeusing the write command.
Command (m forhelp):g (建立GPT分區表)
…………
Command (m forhelp):n (建立一個新的分區,輸入分區號、起始結束扇區等)
…………
Command (m forhelp):t (改變分區類型31)
Selected partition1
Partition type(type L to list all types):31 (分區1的類型改變爲Linux LVM)
Command(m for help): w (寫入磁盤並退出fdisk)
b.在分區/dev/sdb1上創建物理卷physical volume (PV):
pvcreate /dev/sdb1
c.創建卷組volume group (VG),VG名爲“vg-pve”
vgcreate vg-pve /dev/sdb1
至此,iSCSI共享存儲已準備就緒。可供proxmoxVE使用了。
注意:如多網卡同時連接iscsi存儲,會出現多路徑問題,請一個一個的添加(也可先做網口匯聚)
4. 在proxmox VE的GUI中增加共享存儲
用鼠標依次選:數據中心-存儲-添加-LVM
出現添加LVM的對話框:
圖4-1-1
依次命名ID(iSCSI-lvm)、選擇卷組(剛纔創建的卷組vg-pve會出現在下拉菜單中,選擇它即可)、節點(選所有)、選啓用、選共享,然後點添加。
現在共享存儲iSCSI-lvm就會出現在proxmoxVE各節點。共享存儲iSCSI-lvm爲LVM存儲,可將VM的硬盤創建或移動到上面運行以實現HA或經過它熱遷移VM。但LVM不支持精簡(Thin)磁盤和快照。
二、 NFS存儲
本節內容請參考本人另一篇文檔《Openfiler2.99.1圖文教程-搭創建ISCSI&NFS存儲》
三、 Ceph存儲
1. 搭建ceph使用本地掛載硬盤爲proxmox 提供存儲空間
在線安裝
luminous 爲ceph10.2
hammer 爲ceph0.94
每個節點執行
# pveceph install --version luminous
2. 配置ceph網絡
在主節點執行(在任意一個節點執行即可,執行一遍)
# pveceph init --network 10.91.30.0/24
3. 創建ceph監視器mon
可以創建多個mon,在3個節點執行創建奇數個mon
# pveceph createmon
查看mon狀態
# ceph mon stat
4. 創建OSD
# pveceph createosd /dev/sdb
查看ceph osd 運行狀態
# cpeh osd stat
# ceph osd tree
5. 創建存儲池
# ceph osd pool create pool1 128 128
6. web登陸
https://IP:8006
結果如圖
圖4-3-1
圖4-3-2
四、 Proxmox VE主機硬盤管理
一、硬盤管理
1查看硬盤
#fdisk -l
例如有/dev/sdb
2 新建一個分區
# sgdisk -N 1 /dev/sdb
3 創建pv
#pvcreate --metadatasize 250k -y -ff /dev/sdb1
4 創建vg
#vgcreate pve1 /dev/sdb1
5 創建lv 這裏100g根據自己硬盤大小填寫
#lvcreate -L 100g -n data pve1
6 轉換爲thin-pool
#lvconvert --type thin-pool pve1/data
7 警告:
在某些情況下,LVM不會正確計算元數據池/塊大小。請檢查metadatapool是否足夠大。必須滿足的公式是:
PoolSize / ChunkSize * 64b = MetadataPoolSize
你可以通過命令獲取這些信息
#lvs -a -o name,size,chunk_size
8 增加到存儲 可以在數據中心存儲 直接添加lvm-thin id:lvm1, 卷組:pve1, thin pool:data
或者編輯/etc/pve/storage.cfg
lvmthin: lvm1
thinpool data
vgname pve1
content rootdir,images
Creating a Volume Group
Let’s assume we have an empty disk /dev/sdb, onto which we want to create a volume group named “vmdata”.
Caution Please note that the following commands will destroy all existing data on /dev/sdb.
First create a partition.
# sgdisk -N 1 /dev/sdb
Create a Physical Volume (PV) without confirmation and 250K metadatasize.
# pvcreate --metadatasize 250k -y -ff /dev/sdb1
Create a volume group named “vmdata” on /dev/sdb1
# vgcreate vmdata /dev/sdb1
Creating an extra LV for /var/lib/vz
This can be easily done by creating a new thin LV.
# lvcreate -n <Name> -V <Size[M,G,T]> <VG>/<LVThin_pool>
A real world example:
# lvcreate -n vz -V 10G pve/data
Now a filesystem must be created on the LV.
# mkfs.ext4 /dev/pve/vz
At last this has to be mounted.
Warning be sure that /var/lib/vz is empty. On a default installation it’s not.
To make it always accessible add the following line in /etc/fstab.
# echo '/dev/pve/vz /var/lib/vz ext4 defaults 0 2' >> /etc/fstab
Resizing the thin pool
Resize the LV and the metadata pool can be achieved with the following command.
# lvresize --size +<size[\M,G,T]> --poolmetadatasize +<size[\M,G]> <VG>/<LVThin_pool>
Note When extending the data pool, the metadata pool must also be extended.
Create a LVM-thin pool
A thin pool has to be created on top of a volume group. How to create a volume group see Section LVM.
# lvcreate -L 80G -T -n vmstore vmdata
二、增加爲zfs格式:
創建存儲池(type raidz 兩塊硬盤是raid1,三塊硬盤是raid5,還可以用raidz1,2,3等高級用法)
性能對比
Stripe > Mirror
Stripe > RAIDZ1 > RAIDZ2 > RAIDZ3
數據可靠性
Mirror > Stripe
RAIDZ3 > RAIDZ2 > RAIDZ1 > Stripe
zpool create -f -o ashift=12 <pool> <type> <device> log <device-part1> cache <device-part2>
對已有pool增加緩存
zpool add -f <pool> log <device-part1> cache <device-part2>
更換失敗的硬盤
zpool replace -f <pool> <old device> <new-device>
pool存儲池丟失處理.no pools avaliable
查看存儲池狀態
#zpool status -v
刪除緩存
#rm -f /etc/zfs/zpool.cache
導入存儲池
#zpool import zfs-v
如果提示 -f
#zpool import -f zfs-v
如果有設置過緩存或者log,可能會提示 -m
#zpool import -f zfs-v -m
LVM使用緩存
#sda爲HDD sdb爲SSD
創建物理卷
pvcreate /dev/sda
pvcreate /dev/sdb
創建卷組vg
vgcreate vg /dev/sda
vgextend vg /dev/sdb
創建邏輯卷(data爲存儲卷,cache爲緩存卷,meta爲緩衝卷索引,其中cache:meta不能大於1000:1,meta最小爲8M)
lvcreate -L 500G -n data /dev/sda
lvcreate -L 220G -n cache /dev/sdb
lvcreate -L 220G -n meta /dev/sdb
創建緩存池(注意cache和meta的順序不能顛倒)
lvconvert --type cache-pool --poolmetadata vg/meta vg/cache
將存儲卷加入到緩存池中(cachemode有writeback和writethrough兩種模式,默認爲writethrough)
lvconvert --type cache --cachepool vg/cache --cachemode writeback vg/data
注:writeback會在寫入cache完成後,再寫入date中
writethrough會在寫入cache的同時,寫入date(寫入date慢於cache)