一、 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)