Ceph iSCSI Gateway Demo安装配置
Ceph安装部署文档
Ceph安装部署文档目录一:简介 (1)二:部署环境介绍 (1)三:集群配置准备工作 (2)3.1 : 生成SSH证书,节点建立连接 (2)3.2 : 建立ip地址list, 修改host文件 (3)3.3 : 网络端口设置 (3)3.4 : 安装centos的yum源软件包=>全部节点安装 (4)3.5 : 添加时间同步定时任务 (4)3.6 : 安装yum-plugin-priorities. (8)四:安装ceph软件包 (8)4.1、安装ceph部署机,使用ceph-deploy方式安装部署 (8)4.2、安装ceph存储集群(包括ceph对象网关) (8)五:搭建ceph集群 (8)5.1 : 新建ceph集群 (9)5.2 : 添加mon节点 (9)5.3 : 添加osd节点 (9)六:安装过程出现的部分错误及解决方法 (11)七:常用命令 (11)一:简介Ceph 生态系统架构可以划分为四部分:1. Clients:客户端:数据用户2. mds:Metadata server cluster,元数据服务器:缓存和同步分布式元数据(此文档没有安装mds)3. osd:Object storage cluster,对象存储集群:将数据和元数据作为对象存储,执行其它关键职能4. mon:Cluster monitors,集群监视器:执行监视功能二:部署环境介绍三:集群配置准备工作3.1 : 生成SSH证书,节点建立连接1)所有节点修改hostnamevim /etc/sysconfig/network2)安装SSH (主节点)sudo apt-get install openssh-server3)ssh登陆证书(主节点)ssh-keygen将配置完成的证书传输到其它服务器:ssh-copy-id {其他节点用户名}@{其他节点IP} Example:ssh-copy-id root@anode24)创建并编辑~/.ssh/config 文件,添加其他Host Host {Hostname}Hostname {}User {Username}Example:Host anode1Hostname 172.16.100.35User rootHost anode2Hostname 172.16.100.36User rootHost anode3Hostname 172.16.100.37User root3.2 : 建立ip地址list, 修改host文件1)创建工作文件夹,建立ip地址list,为文件传输做准备主节点执行mkdir /workspace/cd /workspace/vim cephlist.txt 主机列表写入:anode1anode2anode32)修改host文件vim /etc/hosts追加内容如下:172.16.100.35 anode1172.16.100.36 anode2172.16.100.37 anode3将host文件传输到其它主机for ip in $(cat /workspace/cephlist.txt);do echo -----$ip-----;rsync -avp /etc/hosts $ip:/etc/;done3.3 : 网络端口设置检查网络设置,确定这些设置是永久生效的,重启之后不会改变。
ceph使用方法
ceph使用方法摘要:1.Ceph简介2.Ceph组件及其作用3.安装Ceph4.Ceph使用方法5.Ceph的日常维护与管理6.Ceph性能优化7.常见问题与解决方案正文:Ceph是一款开源的分布式存储系统,具有高性能、可靠性高、可扩展性强等特点。
它主要由以下几个组件构成:1.Ceph Monitor(CMS):负责维护整个Ceph集群的元数据信息,包括监控各个节点的状态、集群映射关系等。
2.Ceph OSD:负责存储数据,包括数据存储和数据恢复。
OSD节点之间通过CRUSH算法实现数据分布和平衡。
3.Ceph Metadata Server:为Ceph客户端提供元数据服务,包括存储卷配置、快照、克隆等。
接下来,我们来了解一下如何安装和配置Ceph。
1.安装Ceph:首先,确保操作系统为CentOS 7及以上版本。
然后,按照官方文档的指引,依次安装Ceph Monitor、OSD和Metadata Server组件。
2.配置Ceph:安装完成后,需要对Ceph进行配置。
编辑Ceph配置文件(/etc/ceph/ceph.conf),设置相关参数,如:osd pool默认配置、monitor 选举算法等。
3.初始化Ceph:使用ceph-init命令初始化Ceph,之后启动Ceph相关服务。
4.创建存储池:使用ceph-volume命令创建存储池,为存储池分配OSD 节点。
5.创建卷:使用ceph-volume命令创建卷,并将卷挂载到客户端节点。
6.扩容存储池:当存储池空间不足时,可以通过添加OSD节点或调整pool参数进行扩容。
7.维护与管理:定期检查Ceph集群状态,使用ceph命令监控性能指标,如:osd tree、health monitor等。
8.性能优化:根据实际需求,调整Ceph配置文件中的相关参数,如:调整osd的osd_cache_size、osd_timeout等。
9.常见问题与解决方案:遇到问题时,可通过查询官方文档、社区论坛等途径寻求解决方案。
iSCSI简介与安装配置
iSCSI简介与安装配置iSCSI简介SCSI和FC 拥有更高传输速率,因此用于大容量数据存储区域网络(SAN)。
如UltraSCSI320接口速率320MB/s 远大于百兆网络:12MB/s和千兆网:120MB/s。
SAN既有高性能和可扩展性特性,但是不能复用到目前广泛使用TCP/IP网络中,为了实现此目的,以达到更低整体拥有成本和高易用性,产生了iSCSI和FCIP技术。
iSCSI原理是将SCSI网络封装成IP网络(加IP数据头),以便能在IP网络中传输。
这可以通过软件(iSCSI initiator)或者专用的硬件的方式来实现(HBA卡),当然软件的将会额外消耗服务器CPU资源,硬件HBA卡将拥有高好的传输性能,价格也更高。
如果二台或二台以上服务器,直接连接到一台存储设备上(尤其是模拟的存储设备),视乎没有必要采用iSCSI技术方式,采用以太网线直接连接存储上即可(如:NFS方式即可),因为iSCSI多余的封装和解封装或影响传输性能。
但是如果以下情况,需要这么做:●服务器与存储设备连接距离大于25m。
●设备连接设备数目大于16。
●IP SAN存储设备。
●其他iSCSI Enterpise Target(即:iscsitarget)是个成熟稳定开源iSCSI Target 软件。
它用于构建iSCSI磁盘阵列存储系统。
客户端iSCSI initiator用于挂载此存储上的磁盘。
客户端iSCSI initiator可以是Windows系统和也可以是Linux。
模拟iSCSI存储设备的,也有Windows版本的免费软件。
以下介绍iSCSI Enterpise Target搭建的iSCS存储系统(Linux)。
注:也有Windows 版本的也有Target软件。
iSCSI安装iSCSI target安装# tar –xzvf iscsitarget-1.4.20.2.tar.gz# cd iscsitarget-1.4.20.2# yum -y install gcc gcc-c++ kernel-devel# make# make install# /etc/init.d/iscsi-taraget start# chkconfig –level 35 iscsi-target on #开机时自动运行。
ceph安装手册(实验版)20220118
Ceph原生安装手册(实验版)1.环境列表Ceph版本:ceph version 13.2.10主机名主机IP 磁盘配比角色node1 public-ip:192.168.110.121cluster-ip:192.168.1.121Sda(系统盘)sdb/sdc (数据盘)ceph-deploy,monitor,mgr,osdnode2 public-ip:192.168.110.122cluster-ip:192.168.1.122Sda(系统盘)sdb/sdc (数据盘)monitor,osdnode3 public-ip:192.168.110.123cluster-ip:192.168.1.123Sda(系统盘)sdb/sdc (数据盘)monitor,osd2.部署前系统配置2.1 修改/etc/hosts文件(各节点执行)Vi /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.1.121 ceph01192.168.1.122 ceph02192.168.1.123 ceph032.2关闭防火墙(各节点执行)systemctl stop firewalldsystemctl disable firewalldiptables -F(flush 清除所有的已定规则)setenforce 0vi /etc/selinux/configSELINUX =disabled2.3节点设置ssh免密(各节点执行)[root@ceph02 ~]# ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa):Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:RZxC7W733+iZCG9EPcnGye5li4ZCvTYqDFnhdcsjIz8 root@ceph02The key's randomart image is:+---[RSA 2048]----+| ..o.. || ..o+. || . oo+ .= o || + +.+. X || o S.+..o . || o Eo.o . o|| o ..oooo.o.|| o . B.+o=.|| ..+.=.=.o|+----[SHA256]-----+[root@ceph02 ~]# ssh-copy-id root@ceph01/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"The authenticity of host 'ceph01 (192.168.1.121)' can't beestablished.ECDSA key fingerprint is SHA256:0TJBpy/sIxnagPsU62jCRfo3u/FRb4roi7+Qup 7tRx0.ECDSA key fingerprint isMD5:ca:14:e6:a5:3c:72:fa:a2:62:0a:46:dd:fd:05:17:af.Are you sure you want to continue connecting (yes/no)? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s),to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@ceph01's password:Number of key(s) added: 1Now try logging into the machine, with: "ssh 'root@ceph01'"and check to make sure that only the key(s) you wanted were added.[root@ceph02 ~]# ssh-copy-id root@ceph02/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/. ssh/id_rsa.pub"The authenticity of host 'ceph02 (192.168.1.122)' can't beestablished.ECDSA key fingerprint is SHA256:7nRC3lyJyxliOolJgRNTvqKQzjX2zlEn5+xadg 0DTFk.ECDSA key fingerprint isMD5:9b:71:f5:ca:b0:bc:db:7c:96:3c:09:02:a7:c8:0e:e1.Are you sure you want to continue connecting (yes/no)? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@ceph02's password:Number of key(s) added: 1Now try logging into the machine, with: "ssh 'root@ceph02'"and check to make sure that only the key(s) you wanted were added.[root@ceph02 ~]# ssh-copy-id root@ceph03/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/. ssh/id_rsa.pub"The authenticity of host 'ceph03 (192.168.1.123)' can't beestablished.ECDSA key fingerprint is SHA256:MbLYNIWonbVIyPpbbFw1tE99s9LS68TezGU8Mw +BOO8.ECDSA key fingerprint isMD5:3f:62:0b:1a:1c:13:8c:09:66:9c:c8:3a:e6:eb:12:89.Are you sure you want to continue connecting (yes/no)? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@ceph03's password:Number of key(s) added: 1Now try logging into the machine, with: "ssh 'root@ceph03'"and check to make sure that only the key(s) you wanted were added.2.4 配置yum源(各节点执行)//安装wget命令,方便下载新的yum源。
iSCSI 安装配置过程(原创)
iSCSI Server 端安装
Dell PVNX3000默认安装的是Windows Storage Server 2008 R2 Standard版
所以安装高于Microsoft iscsitarget 3.2版本会提示不支持当前操作系统。
因此以下安装过程使用的是Microsoft iscsitarget 3.2版本。
安装后从“管理工具”中运行“Microsoft iSCSI Software Target”程序,进入iSCSI存储管理程序。
在iscsi目标上单击右键-我们选择创建iscsi目标。
打开创建iscsi目标向导。
输入iSCSI目标名称,然后下一步。
添加标示符用于iscsi磁盘访问控制,点击高级。
点击添加,然后选择类型为IP地址来进行对iscsi的访问控制。
输入ip地址后,接下来全部确定即可。
ok,创建目标完成,我们下面去创建虚拟磁盘。
在目标下右键创建一个虚拟磁盘
选择虚拟磁盘文件要保存的位置
选择大小,这里要注意,如果创建1.5T的磁盘,会在硬盘立刻产生一个1.5T的vhd文件,所以需要注意酌情考虑你的磁盘大小来设置。
以上是iSCSIServer的整个配置过程。
iSCSI Client 端安装
iscsitargetClient.msi安装完成,进入控制面板,点击iSCSIIntiator。
进入磁盘管理处,即可看到新增的硬盘。
下图为传输速度测试:
注意:winXP win2003 均不支持大于2T的硬盘,在创建虚拟磁盘时应注意大小控制小于2T。
ceph接口使用方法
ceph接口使用方法Ceph接口使用方法Ceph是一个开源的分布式存储系统,拥有强大的可扩展性和高可靠性。
它通过将数据分布在多个节点上,实现了数据冗余和负载均衡的功能。
Ceph提供了一系列的接口,让开发者可以轻松地使用其功能。
本文将介绍Ceph接口的使用方法,包括安装和配置Ceph、使用Ceph 接口进行数据操作等。
通过本文的指导,读者可以快速上手并深入了解Ceph接口的使用。
第一步:安装Ceph在开始使用Ceph接口之前,首先需要在集群中安装和配置Ceph。
Ceph 可以在Linux系统上运行,支持多种发行版。
以下是在Ubuntu上安装Ceph的步骤:1. 更新系统软件包:使用以下命令更新系统软件包以获取最新的软件包列表和安全修复程序。
sudo apt-get updatesudo apt-get upgrade2. 安装Ceph软件包:使用以下命令安装Ceph软件包。
sudo apt-get install ceph ceph-deploy3. 配置Ceph集群:使用Ceph提供的命令行工具ceph-deploy来配置Ceph集群。
首先需要创建一个新的目录作为Ceph集群的工作目录。
mkdir my-clustercd my-cluster然后,在此目录下,运行以下命令来初始化Ceph集群。
ceph-deploy new <MON节点>这将在当前目录下创建一个名为ceph.conf的配置文件,其中包含了集群的基本配置信息。
接下来,使用以下命令将Ceph软件包安装到集群的所有节点。
ceph-deploy install <所有节点>最后,使用以下命令来为集群添加MON节点。
ceph-deploy mon create-initial第二步:配置Ceph存储池一旦Ceph集群安装和配置完成,下一步是创建一个或多个存储池,以供存储数据。
存储池是Ceph中最基本的单元,用于管理数据的存储和分发。
ceph安装配置说明
ceph安装配置说明一、环境说明:注:在配置系统环境时,需要指定各结点的机器名,关闭iptables、关闭selinux(重要)。
相关软件包:ceph-0.61.2.tar.tarlibedit0-3.0-1.20090722cvs.el6.x86_64.rpmlibedit-devel-3.0-1.20090722cvs.el6.x86_64.rpmsnappy-1.0.5-1.el6.rf.x86_64.rpmsnappy-devel-1.0.5-1.el6.rf.x86_64.rpmleveldb-1.7.0-2.el6.x86_64.rpmleveldb-devel-1.7.0-2.el6.x86_64.rpmbtrfs-progs-0.19.11.tar.bz2$src为安装包存放目录二、内核编译及配置:cp /boot/config-2.6.32-279.el6.x86_64 /usr/src/linux-2.6.34.2/.config make menuconfig #选择把ceph编译成模块和加载btrfs文件系统make all #若是多核处理器,则可以使用make -j8命令,以多线程方式加速构建内核makemodules_installmake install修改/etc/grub.conf文件,把新编译的linux-2.6.34.2版本内核做为默认启动内核。
三、Ceph安装配置:先安装相关依赖包:rpm -ivh libedit0-3.0-1.20090722cvs.el6.x86_64.rpm --forcerpm -ivh libedit-devel-3.0-1.20090722cvs.el6.x86_64.rpmrpm -ivh snappy-1.0.5-1.el6.rf.x86_64.rpmrpm -ivh snappy-devel-1.0.5-1.el6.rf.x86_64.rpmrpm -ivh leveldb-1.7.0-2.el6.x86_64.rpmrpm -ivh leveldb-devel-1.7.0-2.el6.x86_64.rpm编译安装ceph:./autogen.sh./configure --without-tcmalloc --without-libatomic-opsmakemake install配置ceph:cp $src/ceph-0.61.2/src/sample.ceph.conf /usr/local/etc/ceph/ceph.confcp $src/ceph-0.61.2/src/init-ceph /etc/init.d/cephmkdir /var/log/ceph #建立存放ceph日志目录。
ceph 集群配置iscsi的操作步骤 -回复
ceph 集群配置iscsi的操作步骤-回复Ceph是一种开源的分布式对象存储系统,它提供了高可靠性、高可扩展性以及高性能的存储解决方案。
在Ceph集群中,我们可以配置iSCSI (Internet Small Computer System Interface)来提供块级存储服务。
本文将提供一步一步的操作步骤,以帮助您配置Ceph集群以支持iSCSI。
在开始之前,确保您已经搭建好了一个Ceph集群,并配置好了适当的硬件设备。
如果您还没有完成这些步骤,您可以参考Ceph官方文档来进行安装和配置。
以下是配置Ceph集群以支持iSCSI的操作步骤:1. 检查iSCSI支持:首先,您需要确保Ceph集群的所有节点都支持iSCSI。
您可以通过运行以下命令来检查内核模块是否加载:lsmod grep rbdlsmod grep target如果返回的结果为空,则需要加载相应的内核模块。
您可以使用modprobe命令来加载内核模块:modprobe rbdmodprobe target_core_user2. 创建iSCSI池:要使用iSCSI,您需要先创建一个用于存储iSCSI卷的池。
您可以使用以下命令在Ceph集群中创建一个新的池:ceph osd pool create iscsi 128 128其中,"iscsi"是池的名称,"128"是最小数量的副本数,"128"是最大数量的副本数。
3. 创建iSCSI卷:一旦您创建了iSCSI池,就可以在其中创建iSCSI卷。
您可以使用以下命令在Ceph集群中创建一个新的iSCSI卷:rbd create iscsi/myvolume size 10G pool iscsi其中,"iscsi/myvolume"是卷的名称,"size 10G"表示卷的大小为10GB,"pool iscsi"表示卷将存储在名为"iscsi"的池中。
ceph运维手册
ceph运维手册Ceph是一个开源的分布式存储系统,可提供高可用性、高性能和可扩展性。
为了能够有效地管理和维护Ceph集群,需要掌握一些运维技巧和最佳实践。
以下是关于Ceph运维的一些指南和手册。
1. 部署和安装Ceph集群:- 选择合适的硬件配置:了解Ceph的硬件要求,并根据需要选择适当的硬件,如存储设备、网络等。
- 安装Ceph软件包:根据操作系统版本和类型,选择合适的Ceph 软件包,并按照官方文档进行安装。
- 配置Ceph集群:了解Ceph的配置文件和参数,按照需求进行相应的配置,如存储池、存储节点等。
2. 监控和调优Ceph集群:- 使用Ceph管理工具:了解Ceph提供的管理工具,如cephadm、ceph-deploy等,可以方便地监控和管理Ceph集群。
- 监控集群状态:配置和使用监控工具,如Ceph Dashboard、Prometheus等,定期监控集群的状态和性能指标,及时发现和解决问题。
- 调优集群性能:根据实际需求和负载特点,调整Ceph集群的参数和配置,例如调整副本数、调整缓存策略等,以提高性能和可靠性。
3. 故障排除和故障恢复:- 日志分析和排查:仔细分析Ceph集群的日志,找出可能的问题根源,并采取相应的解决措施。
- 数据恢复和修复:当发生数据丢失或损坏时,根据Ceph提供的工具和方法,进行数据恢复和修复操作,确保数据的完整性和可用性。
- 灾难恢复:制定和实施灾难恢复计划,确保在灾难事件发生时,能够快速恢复Ceph集群的运行。
4. 安全和权限管理:- 访问控制和身份认证:了解Ceph的访问控制机制,配置和管理用户、角色和权限,确保集群的安全性。
- 数据加密和传输安全:配置和使用Ceph的加密功能,保护数据的隐私和机密性,确保数据在传输过程中的安全性。
5. 升级和扩展Ceph集群:- 升级Ceph软件:根据官方文档,了解和执行Ceph软件的升级过程,确保平滑升级,并避免数据丢失或故障。
ceph 集群配置iscsi的操作步骤 -回复
ceph 集群配置iscsi的操作步骤-回复Ceph是一种分布式存储系统,它能够提供高性能和高可靠性的存储解决方案。
同时,Ceph还支持ISCSI(Internet Small Computer System Interface),这意味着可以将Ceph集群用作ISCSI存储,为用户提供块级存储服务。
下面将一步一步介绍如何配置Ceph集群以使用ISCSI。
步骤一:安装和配置Ceph集群1. 首先,安装Ceph软件包。
在Ceph官方网站上可以找到相应的软件包和下载链接。
2. 在所有Ceph节点上配置和启动Ceph集群。
这包括创建Ceph配置文件(如ceph.conf)和密钥环文件(如ceph.client.admin.keyring)。
3. 创建Ceph存储池(pool)用于存储ISCSI镜像。
可以使用命令"ceph osd pool create"来创建一个新的pool。
步骤二:配置ISCSI Gateway1. 在其中一个Ceph节点上配置ISCSI Gateway。
ISCSI Gateway将充当ISCSI目标,为客户端提供ISCSI卷。
2. 在Ceph配置文件(ceph.conf)中添加ISCSI Gateway的配置选项,如以下示例所示:[client.iscsigw]keyring = /etc/ceph/iscsi-gateway.keyringclient_mount_uid = 0client_mount_gid = 0pool = iscsi-pool这些选项定义了ISCSI Gateway使用的密钥环文件、ceph用户权限的UID和GID,以及存储ISCSI镜像的池(pool)。
3. 创建并导入ISCSI Gateway所需的密钥环文件。
可使用以下命令创建密钥环文件:ceph auth get-or-create client.iscsigw mon 'profile rbd' osd'profile rbd pool=iscsi-pool'这将生成一个密钥环文件,其中包含ISCSI Gateway所需的权限。
ceph安装部署
ceph安装部署ceph简介不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署⼀个 Ceph ⽂件系统或者把 Ceph 作为他⽤,所有 Ceph 存储集群的部署都始于部署⼀个个 Ceph 节点、⽹络和 Ceph 存储集群。
Ceph 存储集群⾄少需要⼀个 Ceph Monitor 和两个 OSD 守护进程。
⽽运⾏ Ceph ⽂件系统客户端时,则必须要有元数据服务器( Metadata Server )。
Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的⼼跳来向 Ceph Monitors 提供⼀些监控信息。
当 Ceph 存储集群设定为有2个副本时,⾄少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。
Monitors: Ceph Monitor维护着展⽰集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。
Ceph 保存着发⽣在Monitors 、 OSD 和 PG上的每⼀次状态变更的历史信息(称为 epoch )。
MDSs: Ceph 元数据服务器( MDS )为 Ceph ⽂件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使⽤MDS )。
元数据服务器使得 POSIX ⽂件系统的⽤户们,可以在不对 Ceph 存储集群造成负担的前提下,执⾏诸如 ls、find 等基本命令Ceph组件:osdOSD 守护进程,⾄少两个⽤于存储数据、处理数据拷贝、恢复、回滚、均衡通过⼼跳程序向monitor提供部分监控信息⼀个ceph集群中⾄少需要两个OSD守护进程Ceph组件:mon维护集群的状态映射信息包括monitor、OSD、placement Group(PG)还维护了monitor、OSD和PG的状态改变历史信息Ceph组件:mgr(新功能)负责ceph集群管理,如pg map对外提供集群性能指标(如cpeh -s 下IO信息)具有web界⾯的监控系统(dashboard)ceph逻辑结构数据通过ceph的object存储到PG,PG在存储到osd daemon,osd对应diskobject只能对应⼀个pg⼀个raid可以对应⼀个osd⼀整块硬盘可以对应⼀个osd⼀个分区可以对应⼀个osdmonitor:奇数个 osd : ⼏⼗到上万,osd越多性能越好pg概念副本数crush规则(pg怎么找到osd acting set)⽤户及权限epoach:单调递增的版本号acting set: osd列表,第⼀个为primary osd,replicated osdup set :acting set过去的版本pg tmp:临时pg组osd状态:默认每2秒汇报⾃⼰给mon(同时监控组内osd,如300秒没有给mon汇报状态,则会把这个osd踢出pg组) up 可以提供iodown 挂掉了in 有数据out 没数据了ceph应⽤场景:通过tgt⽀持iscsi挂载公司内部⽂件共享海量⽂件,⼤流量,⾼并发需要⾼可⽤、⾼性能⽂件系统传统单服务器及NAS共享难以满⾜需求,如存储容量,⾼可⽤ceph⽣产环境推荐存储集群采⽤全万兆⽹络集群⽹络(不对外)与公共⽹络分离(使⽤不同⽹卡)mon、mds与osd分离部署在不同机器上journal推荐使⽤PCI SSD,⼀般企业级IOPS可达40万以上OSD使⽤SATA亦可根据容量规划集群⾄强E5 2620 V3或以上cpu,64GB或更⾼内存最后,集群主机分散部署,避免机柜故障(电源、⽹络)ceph安装环境由于机器较少,使⽤3台机器,充当mon与osd,⽣产环境不建议,⽣产环境⾄少3个mon独⽴主机IP⾓⾊配置ceph-0eth0:192.168.0.150(Public)eth1:172.16.1.100(Cluster)mon、osd、mgrDISK 0 15G(OS)DISK 110G(Journal)DISK 2 10G(OSD)DISK 3 10G(OSD)ceph-1eth0:192.168.0.151(Public)eth1:172.16.1.101(Cluster)mon、osd、mgrDISK 0 15G(OS)DISK 110G(Journal)DISK 2 10G(OSD)DISK 3 10G(OSD)ceph-2eth0:192.168.0.152(Public)eth1:172.16.1.102(Cluster)mon、osd、mgrDISK 0 15G(OS)DISK 110G(Journal)DISK 2 10G(OSD)DISK 3 10G(OSD)⼀、系统设置1.绑定主机名由于后续安装及配置都涉及到主机名,故此需先绑定依次在三个节点上执⾏以下命令完成hosts绑定[root@ceph-node0 ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.0.150 ceph-node0192.168.0.151 ceph-node1192.168.0.152 ceph-node22.ssh-keygen信任3. 每台关闭防⽕墙systemctl stop firewalld4.时间同步yum install -y ntpdate//ntpdate 5.安装epel源与ceph-deploy本步骤要在每⼀个节点上执⾏安装epel源wget -O /etc/yum.repos.d/epel.repo /repo/epel-7.repo安装ceph-deployrpm -ivh https:///ceph/rpm-luminous/el7/noarch/ceph-release-1-1.el7.noarch.rpm 替换 ceph.repo 服务器sed -i 's#htt.*://#https:///ceph#g' /etc/yum.repos.d/ceph.repo 或直接复制下⽅⽂本内容替换 /etc/yum.repos.d/ceph.repo[Ceph]name=Ceph packages for $basearchbaseurl=https:///ceph/rpm-luminous/el7/$basearchenabled=1gpgcheck=1type=rpm-mdgpgkey=https:///ceph/keys/release.asc[Ceph-noarch]name=Ceph noarch packagesbaseurl=https:///ceph/rpm-luminous/el7/noarchenabled=1gpgcheck=1type=rpm-mdgpgkey=https:///ceph/keys/release.asc[ceph-source]name=Ceph source packagesbaseurl=https:///ceph/rpm-luminous/el7/SRPMSenabled=1gpgcheck=1type=rpm-mdgpgkey=https:///ceph/keys/release.asc6.安装ceph使⽤ yum 安装 ceph-deploy[root@ceph-node0 ~]# yum install -y ceph-deploy创建 ceph-install ⽬录并进⼊,安装时产⽣的⽂件都将在这个⽬录[root@ceph-node0 ~]# mkdir ceph-install && cd ceph-install[root@ceph-node0 ceph-install]#⼆、准备硬盘1.Journal磁盘本步骤要在每⼀个节点上执⾏在每个节点上为Journal磁盘分区, 分别为 sdb1, sdb2, 各⾃对应本机的2个OSD, journal磁盘对应osd的⼤⼩为25%使⽤ parted 命令进⾏创建分区操作[root@ceph-node0 ~]# parted /dev/sdbmklabel gptmkpart primary xfs 0% 50%mkpart primary xfs 50% 100%q2.OSD磁盘对于OSD磁盘我们不做处理,交由ceph-deploy进⾏操作三、安装ceph1.使⽤ceph-deploy安装ceph,以下步骤只在ceph-depoly管理节点执⾏创建⼀个ceph集群,也就是Mon,三台都充当mon[root@ceph-node0 ceph-install]# ceph-deploy new ceph-node0 ceph-node1 ceph-node2在全部节点上安装ceph[root@ceph-node0 ceph-install]# ceph-deploy install ceph-node0 ceph-node1 ceph-node2或在每个节点上⼿动执⾏ yum install -y ceph创建和初始化监控节点并收集所有的秘钥[root@ceph-node0 ceph-install]# ceph-deploy mon create-initial此时可以在osd节点查看mon端⼝创建OSD存储节点[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node0 --data /dev/sdc --journal /dev/sdb1[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node0 --data /dev/sdd --journal /dev/sdb2[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node1 --data /dev/sdc --journal /dev/sdb1[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node1 --data /dev/sdd --journal /dev/sdb2[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node2 --data /dev/sdc --journal /dev/sdb1[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node2 --data /dev/sdd --journal /dev/sdb2把配置⽂件和admin 秘钥到管理节点和ceph节点[root@ceph-0 ceph-install]# ceph-deploy --overwrite-conf admin ceph-node0 ceph-node1 ceph-node2使⽤ ceph -s 命令查看集群状态[root@ceph-node0 ceph-install]# ceph -scluster:id: e103fb71-c0a9-488e-ba42-98746a55778ahealth: HEALTH_WARNno active mgrservices:mon: 3 daemons, quorum ceph-node0,ceph-node1,ceph-node2mgr: no daemons activeosd: 6 osds: 6 up, 6indata:pools: 0 pools, 0 pgsobjects: 0 objects, 0Busage: 0B used, 0B / 0B availpgs:如集群正常则显⽰ health HEALTH_OK如OSD未全部启动,则使⽤下⽅命令重启相应节点, @ 后⾯为 OSD IDsystemctl start ceph-osd@02. 部署mgrluminous 版本需要启动 mgr, 否则 ceph -s 会有 no active mgr 提⽰官⽅⽂档建议在每个 monitor 上都启动⼀个 mgr[root@ceph-node0 ceph-install]# ceph-deploy mgr create ceph-node0:ceph-node0 ceph-node1:ceph-node1 ceph-node2:ceph-node2再次查看ceph状态[root@ceph-node0 ceph-install]# ceph -scluster:id: e103fb71-c0a9-488e-ba42-98746a55778ahealth: HEALTH_OKservices:mon: 3 daemons, quorum ceph-node0,ceph-node1,ceph-node2mgr: ceph-node0(active), standbys: ceph-node1, ceph-node2osd: 6 osds: 6 up, 6 indata:pools: 0 pools, 0 pgsobjects: 0 objects, 0Busage: 6.02GiB used, 54.0GiB / 60.0GiB availpgs:3.清除操作安装过程中如遇到奇怪的错误,可以通过以下步骤清除操作从头再来[root@ceph-node0 ceph-install]# ceph-deploy purge ceph-node0 ceph-node1 ceph-node2[root@ceph-node0 ceph-install]# ceph-deploy purgedata ceph-node0 ceph-node1 ceph-node2[root@ceph-node0 ceph-install]# ceph-deploy forgetkeys四、配置1. 为何要分离⽹络性能OSD 为客户端处理数据复制,复制多份时 OSD 间的⽹络负载势必会影响到客户端和 ceph 集群的通讯,包括延时增加、产⽣性能问题;恢复和重均衡也会显著增加公共⽹延时。
iscsi的实用教程(一) --- iscsi 的配置和安装
iscsi的实用教程(一) --- iscsi 的配置和安装2011-01-20 11:18:13标签:iscsi原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。
否则将追究法律责任。
/2402458/482084iscsi的实用教程(一) --- iscsi 的配置和安装---来自ISCSI 就是网络存储,和NFS的区别ISCSI还可以做裸设备用,ORACLE上应用很多。
本例子只做基本的安装和时现基本的网络存储功能,要更好的使用需要结合其他文件系统,例如GFS 后面会更新。
主机IP:10.1.1.39连接客户端:10.1.1.7主机操作虚拟机新加一个硬盘,大概1G就可以了,这时候多了个/dev/sdb ,分区变成sdb1,要做文件系统就格式化硬盘,做裸设备就不要。
本实验需要格式化#mkfs.ext3 /dev/sdb1安装:下载最新的iscsi-target:/projects/iscsitarget/files/iscsitarget/ #tar xvf iscsitarget-1.4.20.2.tar.gz#cd iscsitarget-1.4.20.2#make;make install#vim /etc/iet/ietd.conf在最后添加Target .dog.mail:storage.sdb1Lun 0 Path=/dev/sdb1,Type=fileioAlias lun0一般命名格式:iqn.yyyy-mm.反过来的域名:设备名字Lun 0 :块设备号为0,映射磁盘/dev/sdb1# /etc/init.d/iscsi-target start获得 iscsi 命名#iscsiadm -m discovery -t sendtargets -p localhost10.1.1.39:3260,1 .dog.mail:storage.sdb1客户端操作:安装iscsi-initiator-utils#yum install iscsi-initiator-utils启动:#/etc/init.d/iscsi start#/etc/init.d/iscsid start连接握手#iscsiadm -m node -T .dog.mail:storage.sdb1 -p 10.1.1.39客户端连接ISCSI服务器# iscsiadm -m node -T .dog.mail:storage.sdb1 -p 10.1.1.39 -l Logging in to [iface: default, target: .dog.mail:storage.sdb1, portal: 10.1.1.39,3260]Login to [iface: default, target: .dog.mail:storage.sdb1, portal: 10.1.1.39,3260]: successful-------------------------------------------------------------------------------------退出登录iscsiadm -m node -T .dog.mail:storage.sdb1 -p 10.1.1.39 -u删除记录iscsiadm -m node -o delete -T .dog.mail:storage.sdb1 -p 10.1.1.39 --------------------------------------------------------------------------------------连接后#fdisk -l发现多了一个新的银盘/dev/sdb了,挂载使用测试。
ceph详细安装部署教程(多监控节点)
ceph详细安装部署教程(多监控节点)1、安装环境系统centos-6.5设备:1台admin-node (ceph-ploy) 1台 monistor 2台 osd2、关闭所有节点的防火墙及关闭selinux,重启机器。
service iptables stopsed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config chkconfig iptables off3、编辑admin-node节点的ceph yum仓库vi /etc/yum.repos.d/ceph.repo[ceph-noarch]name=Ceph noarch packagesbaseurl=/rpm/el6/noarch/enabled=1gpgcheck=1type=rpm-mdgpgkey=https:///git/?p=ceph.git;a=blob_plain;f=keys/relea se.asc4、安装搜狐的epel仓库rpm -ivh /fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm5、更新admin-node节点的yum源yum clean allyum update -y6、在admin-node节点上建立一个ceph集群目录mkdir /cephcd /ceph7、在admin-node节点上安装ceph部署工具yum install ceph-deploy -y8、配置admin-node节点的hosts文件vi /etc/hosts10.240.240.210 admin-node10.240.240.211 node110.240.240.212 node210.240.240.213 node3二、配置ceph-deploy部署的无密码登录每个ceph节点1、在每个Ceph节点上安装一个SSH服务器[ceph@node3 ~]$ yum install openssh-server -y2、配置您的admin-node管理节点与每个Ceph节点无密码的SSH访问。
iSCSI配置
3.3任务1 iSCSI的配置3.3.1 配置环境应用于存储区域网络(SAN)环境中的存储虚拟化(storage visualization)技术通常是指异构的SAN环境下的虚拟存储服务,它带给人们的益处是:提高存储利用率降低成本,简化大型、复杂、异构的存储环境的管理工作。
iSCSI 通过IP网络,将SCSI块数据转换成网络封包的一种传输标准,它和NAS一样透过IP网络来传输数据,但在数据存储方式上采用与NAS不太、与FC-SAN相同的块协议(Block Protocal)。
在Windows server2012上面配置iSCSI,需要一下主要过程:(1)在Windows server 2012上启动iSCSI服务器功能;(2)在iSCSI管理界面,创建iSCSI虚拟网盘;(3)在服务器节点使用发起程序连接到设置好的服务器上的磁盘;设计实验环境iSCSI环境示意图如下所示。
图3-8 iSCSI实验环境架构本书以Windows server2012集成iSCSI功能为例介绍在服务器角色中集成iSCSI服务器功能。
Windows Server 2012(开发代号:Windows Server 8)是微软的一个服务器系统。
这是Windows 8的服务器版本,并且是Windows Server 2008 R2的继任者。
Windows Server 2012 R2 将能够提供全球规模云服务的Microsoft 体验带入您的基础架构,在虚拟化、管理、存储、网络、虚拟桌面基础结构、访问和信息保护、Web 和应用程序平台等方面具备多种新功能和增强功能。
系统安装硬件配置要求最低系统要求:(1)处理器:1.4GHz 64位;(2)RAM:512MB;(3)磁盘空间:32GB;系统安装如下需要如下步骤:光盘插入光驱以后,进入系统安装界面,如下图2-1所示,选择简体中文语言版本。
图3-1 win2012语言选择界面进入系统安装首界面。
ceph操作手册
ceph操作手册Ceph是一种分布式存储系统,提供了高性能、高可用性和可扩展性的存储服务。
以下是Ceph操作手册,以帮助您快速上手使用Ceph。
一、概述Ceph是一个开源的分布式存储系统,具有高性能、高可用性和可扩展性,广泛应用于存储大规模数据。
Ceph提供了块存储、文件存储和对象存储三种服务,可以根据实际需求选择合适的存储类型。
二、安装与部署1.安装前准备:确保服务器硬件满足Ceph的要求,包括CPU、内存、磁盘和网络等。
同时,需要准备Ceph软件包和安装工具。
2.安装Ceph:根据您的操作系统和需求,选择合适的Ceph版本,并按照官方文档的指引进行安装。
3.配置Ceph:编辑Ceph的配置文件,设置集群名称、监控组件、存储组件等参数。
4.启动Ceph:启动Ceph的各个组件,包括监视器、存储节点等。
5.测试Ceph:通过创建对象、文件或块设备,测试Ceph 是否正常工作。
三、管理维护1.监控Ceph:使用Ceph命令行工具或图形化界面,监控集群状态、性能指标和故障排除等。
2.维护Ceph:定期进行Ceph的维护操作,如更新配置、修复故障和升级版本等。
3.数据备份与恢复:定期备份Ceph中的数据,以防止数据丢失。
同时,需要制定数据恢复计划,以便在数据损坏或丢失时快速恢复。
4.安全防护:确保Ceph集群的安全性,采取措施防止未经授权的访问和数据泄露。
四、性能优化1.调整配置:根据实际需求和硬件性能,调整Ceph的配置参数,提高存储性能。
2使用SSD:使用SSD可以提高I/O性能和数据可靠性。
3.多路径I/O:配置多路径I/O可以增加数据传输带宽和可靠性。
4.压缩与去重:启用数据压缩和去重功能可以减少存储空间占用和网络带宽消耗。
五、常见问题与解决方案1.Ceph集群无法启动:检查硬件和网络连接是否正常,查看日志文件查找故障原因。
2.数据损坏或丢失:检查数据备份和恢复计划是否完善,及时采取恢复措施。
Ceph安装部署与测试调优
Ceph安装部署及测试调优目录1.熟悉Ceph存储的基本原理与架构2.掌握Ceph集群的安装部署方法3.掌握Ceph常见的性能测试调优方法目录1.基本概念及架构2.安装部署3.测试调优Ceph是一个统一的分布式存储系统,具有高扩展性、高可靠性、高性能,基于RADOS(reliable, autonomous, distributed object store ),可提供对象存储、块设备存储、文件系统存储三种接口RADOS:是Ceph集群的精华,为用户实现数据分配、Failover等集群操作。
LIBRADOS:Librados是RADOS的提供库,上层的RBD、RGW和CephFS都是通过LIBRADOS访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
RBD:RBD全称RADOS block device,是Ceph对外提供的块设备服务。
RGW:RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
CephFS:CephFS全称Ceph File System,是Ceph对外提供的文件系统服务OSD :Ceph OSD 进程,功能是负责读写数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向Ceph Monitors 提供一些监控信息。
Monitor :集群的管理进程,维护着展示集群状态的各种图表,包括监视器图、OSD 图、归置组(PG )图、和CRUSH 图。
MDS :Ceph 元数据服务器,为Ceph 文件系统存储元数据(也就是说,Ceph 块存储和Ceph 对象存储不使用MDS )。
Ceph存储集群Object :Ceph 最底层的存储单元是Object 对象,每个Object 包含元数据和原始数据。
PG :PG 全称Placement Groups ,即归置组,是存放objects 的逻辑概念,一个PG 可映射到多个OSD 。
ceph 集群配置iscsi的操作步骤
ceph 集群配置iscsi的操作步骤1. 引言1.1 概述本文将介绍如何在Ceph集群中配置iSCSI,并提供操作步骤以帮助读者完成配置过程。
iSCSI(Internet Small Computer System Interface)是一种基于IP 网络的存储协议,它允许主机通过网络访问远程存储设备,模拟出本地连接的效果。
Ceph是一个开源、分布式存储平台,具有高扩展性和可靠性,与iSCSI结合使用能够提供更多的存储解决方案。
1.2 文章结构本文将包含以下几个部分:概述、ceph与iSCSI集成优势、准备工作、ceph集群配置步骤、配置iSCSI Initiator客户端和结论。
首先,文章将通过简要介绍概述部分来引入话题,并描述本文的组织结构。
然后,我们将讨论为什么选择使用ceph与iSCSI集成,并探讨该集成在存储环境中所带来的优势。
接下来,我们将介绍在进行配置之前需要做的准备工作。
随后,在ceph集群配置步骤部分,我们将详细说明如何安装和配置ceph集群,并创建Pool和RBD镜像。
然后,在配置iSCSI Initiator客户端部分,我们将讲解如何在客户端安装Initiator软件包、发现远程iSCSI目标并连接,以及格式化与挂载iSCSI磁盘的步骤。
最后,在结论部分,我们将总结本文的主要内容,并展望ceph与iSCSI集成在未来的发展方向。
1.3 目的本文旨在帮助读者了解如何在Ceph集群中配置iSCSI,并提供详细的操作步骤。
通过阅读本文,读者将能够掌握配置Ceph集群和设置iSCSI Initiator客户端所需的技能,并了解Ceph和iSCSI集成所带来的优势。
无论是初学者还是有经验的存储管理员,都可以从本文中获得有益的知识和参考指导。
将Ceph和iSCSI 相结合可以为存储环境提供更灵活、可靠和可扩展的解决方案,本文也旨在推广这种集成应用并促进其未来发展。
2. ceph 集群配置iscsi的操作步骤:2.1 iSCSI简介:iSCSI(Internet Small Computer System Interface)是一种基于IP网络的存储协议,它允许远程主机通过TCP/IP网络访问存储设备。
Ceph iSCSI Gateway Demo安装配置
拷贝 scstadmin-3.0.1.tar.bz2 到 iscsi gateway 节点上,执行以下命令: tar -jxvf scstadmin-3.0.1.tar.bz2 cd scstadmin-3.0.1 make make install
4.1.5 启动 iscst target
1.故障的切换和恢复 2.IO 流量的负载均衡 3.磁盘的虚拟化
由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都 提供了不同的版本。并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的 话,可能还需要向厂商购买 license 才行。 业界比较常见的多路径功能软件有 EMC 的 PowerPath, IBM 的 SDD,日立的 Hitachi Dynamic Link Manager 和广泛使用的 linux 开源 软件 multipath 和 windows server 的 MPIO。
1)简单,方便使用和维护; 2)另外已经有 ceph 的 target driver,只是需要做性能优化; 3)因为工作在用户态,所以即使挂掉了,也不会对其他运行的程序产生影响; 它的缺点是:
1)支持的传输协议较少; 2)对 SCSI 协议支持比较简单,一些 cluster 中的特性比如 PR 等都不支持,所以基于 stgt 的方案不能在 cluster 中使用; 3)由于是用户态框架,性能问题较差,根据网上的相关数据, tgt 在使用本地存储的 情况下,性能相比后面会提到的 SCST、 LIO 等是有一定差距的。
图 2 Ceph iSCSI Gateway Demo 架构
4. Ceph iSCSI Gateway Demo 安装
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1)支持的传输协议较少; 2)对 SCSI 协议支持比较简单,一些 cluster 中的特性比如 PR 等都不支持,所以基于 stgt 的方案不能在 cluster 中使用; 3)由于是用户态框架,性能问题较差,根据网上的相关数据, tgt 在使用本地存储的 情况下,性能相比后面会提到的 SCST、 LIO 等是有一定差距的。
4.1.4 安装 scstadmin
拷贝 scstadmin-3.0.1.tar.bz2 到 iscsi gateway 节点上,执行以下命令: tar -jxvf scstadmin-3.0.1.tar.bz2 cd scstadmin-3.0.1 make make install
4.1.5 启动 iscst target
Client(linux)包括 multpath 和 iscsi initiator,initiator 使用 open-iscsi,每 个 initiator 可以连接到多个 Iscsi target。对于多个 target 后端对应的同一个 image, 则使用多路径软件聚合成一个块设备后提供给用户使用。这样可以解决网络故障或者 gateway 故障后,通过另一条链路能够继续提供服务。
由于我们的 Demo 是把多路径接入 ceph,把 ceph 通过 scsi target 软件映射到主机上使 用,因此我们多路径软件选择的是 linux 开源软件通用多路径 multipath 和 windows server 的 MPIO
3 总体概述
Ceph iSCSI Gateway Demo 整体框架包括三个部分,ceph cluster、iscsi gateway 和 client。
3. LIO LIO 也即 Linux-IO,是目前 GNU/Linux 内核自带的 SCSI target 框架(自 2.6.38 版本开
始引入,真正支持 iSCSI 需要到 3.1 版本) ,对 iSCSI RFC 规范的支持非常好,包括完整 的错误恢复都有支持。整个 LIO 是纯内核态实现的,包括前端接入和后端存储模块,为了 支持用户态后端,从内核 3.17 开始引入用户态后端支持,即 TCMU(Target Core Module in Userspace) 优点:
缺点: 1)不支持 AEN,所以 target 状态发生变化时,只能通过 IO 或者用户手动触发以检测处 理变化。 2)结构相对复杂,二次开发成本较高。 3)工作在内核态,出现问题会影响其他程序的运行。
4. 总结 总的来说,stgt 构建一个规模不是很大的 iSCSI target。 LIO 支持 FC、SRP 等协议,但性能、稳定性不是很好。 SCST 适合构建一个企业级的高性能、高稳定性的存储方案,各大存储服务提供商都是基
1)支持较多传输协议 2)代码并入 linux 内核,减少了手动编译内核的麻烦。 3)提供了 python 版本的编程接口 rtslib。 4)LIO 在不断 backport SCST 的功能到 linux 内核,社区的力量是强大的。 5)LIO 也支持一些 SCST 没有的功能。如 LIO 还支持“会话多连接”(MC/S)。 6)LIO 支持最高级别的 ERL。
2.方案选型
ceph 集群目前支持三种形式的存储接口:文件、对象、块,其中块接口(即 RBD)与 SCSI 块设备读写所要求的接口一致,因此可以基于 ceph 的 RBD 提供 SCSI 存储系统后端。基 于 RBD 的 iSCSI 支持有多种实现思路,根据我们团队的现状,选择以下方案: 选择合适 的 iSCSI target 为其增加 RBD 后端支持,并在终端用户与 ceph 集群之 间架设 iSCSI 网关 (可以扩展成其它类型的如 FC 网关); 基本的架构图如下:
图 2 Ceph iSCSI Gateway Demo 架构
4. Ceph iSCSI Gateway Demo 安装
4.1 iSCSI Gateway 安装
4.1.1 下载源码
SCST 的版本选择的是 3.0.1,这个版本是社区里最新的稳定版。SCST 的安装需要重新编 译源码,相关的源码下载地址如下 1、scst 源码地址: /projects/scst/files/scst/scst-3.0.1.tar.bz2/download 2. scstadmin 源码地址: /projects/scst/files/scstadmin/scstadmin-3.0.1.tar.bz2/download 3. iscsi-scst 源码地址: /projects/ scst/fi les/ isc si- scst/i scsi -scst-3.0.1.tar.bz2/download
Ceph iSCSI Gateway Demo 安装配置
1. 背景介绍
ceph 作为一个真正意义上的统一存储系统,有着很好的应用前景,但到目前为止有多 种原因限制了其在传统存储应用领域真正大范围的应用,如客户端仅支持 GNU/Linux 系统, 内核态客户端实现也仅会合入高版本的内核中等。而对于 iSCSI 这种传统的存储应用而言, 由于客户端配置 简单且足 够通用,常 见的各种系 统(包括操 作系统和 应用系统) 一般都对 iSCSI 有很好的支持,因此为了扩大 ceph 的应用范围,特别是应对只支持 iSCSI 的系统, ceph 必须通过某种途径实现对 iSCSI 的支持。
1.故障的切换和恢复 2.IO 流量的负载均衡 3.磁盘的虚拟化
由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都 提供了不同的版本。并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的 话,可能还需要向厂商购买 license 才行。 业界比较常见的多路径功能软件有 EMC 的 PowerPath, IBM 的 SDD,日立的 Hitachi Dynamic Link Manager 和广泛使用的 linux 开源 软件 multipath 和 windows server 的 MPIO。
4.1.2 安装 SCST
拷贝 scst-3.0.1.tar.bz2 到 iscsi gateway 上,执行以下命令: tar -jxvf scst-3.0.1.tar.bz2 cd scst-3.0.1 make make install
4.1.3 安装 iscsi-scst
拷贝 iscsi-scst-3.0.1.tar.bz2 到 iscsi gateway 上,执行以下命令: tar -jxvf iscsi-scst-3.0.1.tar.bz2stall
执行下面的命令加载 scst 内核模块 modprobe scst modprobe scst_vdisk modprobe iscsi-scst
执行如下命令启动 scst 的用户态进程 /etc/init.d/scst start /usr /local/sbin /i scsi- scstd
于 SCST。因此我们选择了 SCST。
2.2 多路径
普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤 组成的 SAN 环境,或者由 iSCSI 组成的 IPSAN 环境,由 于主机和存储通过了光纤交换机或 者多块网卡及 IP 来连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以 有多条路径可以选择。主机到存储之间 的 IO 由多条路径可以选择。每个主机到所对应的存 储可以经过几条不同的路径,如果是同时使用的话,I/O 流量如何分配?其中一条路径坏掉 了,如何处理?还 有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在 的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用 户 带来了困惑。多路径软件就是为了解决上面的问题应运而生的。 多路径的主要功能就是和存储设备一起配合实现如下功能:
图 1. Ceph iSCSI Gateway 基本框架 从上图可以看出,Ceph iSCSI Gateway 基本框架包括三个部分,ceph cluster、iscsi gateway 和 client。下面简单介绍以下各个组件的方案选择。
2.1 SCSI target 框架
GNU/Linux 系统中流行的 SCSI target 框架或 iSCSI target 实现有如下几种: tgt、SCST、 Linux-IO。 1. tgt tgt 是一个用户态的 SCSI target 框架,在 GNU/Linux 内核直接集成 SCSI target 框架之前, 这是一个绝对主流的框架。 它的优点是:
iscsi gateway 可以部署多个,每个 gateway 包括 iscsi target 和内核 rbd,iscsi target 使用了开源软件 SCST,块存储由 ceph 的内核模块 rbd 提供接口。每一个存储资源可以映射 到多个 gateway 上,通过任何一个 gateway 都可以访问到数据。将一个 image 映射到 gateway 本地后,再把这个块设备配置为 target 的后端存储。
2.SCST SCST 的核心模块工作在内核里,可以支持通过系统模块(VFS、块层)访问的后端存储
如块设备、文件设备以及 passthrough 的 scsi 设备。 它的优点是:
1)支持更多传输协议 2)针对性能做了特殊的优化 3)除了基本的 SCSI 协议支持外,还有一些高级支持: SCST 支持永久性预留(Persistent Reservation, PR);这是一个用于高可用集群中的存储 设备的 I/O 隔离与存储设备故障切换、接管的特性。通过使用 PR 命令,initiator 可 以在一个 target 上建立、抢占、查询、重置预留策略。在故障接管过程中,新的虚拟 资源可以重置老的虚拟资源的预留策略,从而让故障切换更快、更容易地进行。 SCST 可以使用异步事件通知(AEN)来通告会话状态的变更。AEN 是一个 SCSI target 用 来向 initiator 进行 target 端的事件告知的协议特性,即使在没有服务请求的时候也可 以进行。于是 initiator 就可以在 target 端发生事件时,如设备插入、移除、调整尺寸 或更换介质时,可以得到通知。这让 initiator 可以以即插即用的方式看到 target 的变 化。 4)SCST 的开发者声称,它们的设计在健壮性和安全性方面更加符合 SCSI 标准。SCSI 协 议要求,如果一个 initiator 要清除另一个 initiator 的预留资源时,预留者必须要得到 清除通知,否则,多个 initiator 都可能来改变预留数据,就可能会破坏数据。SCST 可 以实现安全的预留、释放操作,避免类似事情发生。 5)SCST 也支持非对称逻辑卷分配(ALUA)。ALUA 允许 target 管理员来管理 target 的 访问状态和路径属性。这让多路径路由机制可以选择最好的路径,从而根据 target 的 访问状态,优化带宽的使用。换句话说,在多路径环境下,target 管理员可以通过改变 访问状态来调整 initiator 的路径。 6)各大存储服务提供商都是基于 SCST。 7)提供更细粒度的访问控制策略以及 QoS 保证机制(限制 initiator 连接的个数)。 它的缺点是: 1)结构复杂,二次开发成本较高。 2)工作在 kernel,如果挂了,会导致整个机器 down 掉,影响其他程序。 3)kernel 部分没有并入 linux,需要手工编译。