前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >手动部署ceph octopus集群

手动部署ceph octopus集群

作者头像
没有故事的陈师傅
发布于 2021-02-01 03:05:44
发布于 2021-02-01 03:05:44
2.7K00
代码可运行
举报
文章被收录于专栏:运维开发故事运维开发故事
运行总次数:0
代码可运行
基础配置

三台环境为centos7.9,以下配置需要在每台机器上执行

配置hosts解析
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat >> /etc/hosts <<EOF
192.168.2.16 node1
192.168.2.19 node2
192.168.2.18 node3
EOF
关闭防火墙和selinux
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
分别在三个节点设置主机名
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
配置主机时间同步
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl restart chronyd.service && systemctl enable chronyd.service

使用yum安装

安装yum-plugin-priorities

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 yum install yum-plugin-priorities

安装依赖包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install snappy leveldb gdisk python-argparse gperftools-libs epel-release

添加ceph仓库

建议使用阿里的源,国外的太慢了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.8/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.8/el7/noarch/
gpgcheck=0

安装ceph

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install ceph -y

部署monitor节点

所有 Ceph 群集至少需要一个monitor,并且至少需要与存储在群集上的对象副本一样多的 OSD。引导初始mon是部署 Ceph 存储群集的第一步,这里我直接在node1、node2、node3创建三个mon。

在node1添加monitor

为集群生成唯一的fsid,fsid是群集的唯一标识符,代表 Ceph 存储群集主要用于 Ceph 文件系统的文件系统 ID

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uuidgen

创建ceph配置文件,将生成的fsid添加到配置文件中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/ceph/ceph.repo
[global]
fsid=9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4

为群集创建keyring并生成monitor keyring。monitor通过密钥相互通信。必须生成具有monitor密钥的keyring,并在引导初始monitor时提供keyring。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'

生成管理员keyring,生成用户并将用户添加到client.admin keyring中。要使用 CLI 工具,必须有一个用户,并且还必须将用户添加到monitor keyring。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'

生成引导 osd 密钥,生成用户并将用户添加到client.bootstrap-osd keyring中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'

将生成的键添加到 ceph.mon.keyring

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring

更改 ceph.mon.keyring的所有者。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chown ceph:ceph /tmp/ceph.mon.keyring

使用主机名、主机 IP 地址和 FSID 生成monitor映射。将其保存为 :/tmp/monmap

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
monmaptool --create --add node1 192.168.2.16 --add node2 192.168.2.19 --add node3 192.168.2.18 --fsid 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4 /tmp/monmap

查看生成的monitor映射文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
monmaptool --print /tmp/monmap

在monitor主机上创建默认数据目录,目录名是{cluster-name}-{hostname}格式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /var/lib/ceph/mon/ceph-node1
chmod 777 -R /var/lib/ceph/mon/ceph-node3

在node1节点对monitor进行初始化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring

可以查看数据目录生成的文件

编辑ceph配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[global]
fsid = 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4
mon initial members = node1,node2,node3
mon host = 192.168.2.16,192.168.2.19,192.168.2.18
mon clock drift allowed = .5
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
osd pool default size = 3  //创建pool的时候默认pool是3副本
osd pool default min size = 2   //pool最少可写的副本数为2
osd pool default pg num = 8
osd pool default pgp num = 8
osd crush chooseleaf type = 0 

将配置文件拷贝到其他节点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scp /etc/ceph/ceph.conf node2:/etc/ceph/ceph.conf
scp /etc/ceph/ceph.conf node3:/etc/ceph/ceph.conf

将mon keyring,mon map及admin keyring拷贝到其他节点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scp /tmp/ceph.mon.keyring node2:/tmp/ceph.mon.keyring
scp /etc/ceph/ceph.client.admin.keyring node2:/etc/ceph/ceph.client.admin.keyring
scp /tmp/monmap node2:/tmp/monmap
scp /tmp/ceph.mon.keyring node3:/tmp/ceph.mon.keyring
scp /etc/ceph/ceph.client.admin.keyring node3:/etc/ceph/ceph.client.admin.keyring
scp /tmp/monmap node3:/tmp/monmap

在node2、node3上添加monitor

分别在这两个节点创建数据目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /var/lib/ceph/mon/ceph-node2
chmod 777 -R /var/lib/ceph/mon/ceph-node2
mkdir /var/lib/ceph/mon/ceph-node3
chmod 777 -R /var/lib/ceph/mon/ceph-node3

分别在这两个节点对monitor进行初始化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-mon --mkfs -i node2 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
ceph-mon --mkfs -i node3 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring

分别在三个节点启动ceph-mon服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start ceph-mon@node1 && systemctl enable ceph-mon@node1
systemctl start ceph-mon@node2 && systemctl enable ceph-mon@node2
systemctl start ceph-mon@node3 && systemctl enable ceph-mon@node3

image.png

可以看到提示3 monitors have not enabled msgr2"

执行以下命令恢复正常

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph mon enable-msgr2

image.png

创建MGR

在运行ceph-mon守护程序的每个节点上,还应该设置一个ceph-mgr守护程序。

创建密钥目录

所有mgr节点都要执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-`hostname -s`
cd /var/lib/ceph/mgr/ceph-`hostname -s`

创建身份验证密钥

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' > keyring

启动mgr守护进程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl enable ceph-mgr@`hostname -s` && systemctl start ceph-mgr@`hostname -s`

看样子状态有点异常,在所有节点执行下面的命令之后重启机器即可解决

Module 'restful' has failed dependency: No module named 'pecan'

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip3 install pecan werkzeug

image.png

部署osd

Ceph提供了该ceph-volume实用程序,该实用程序可以准备逻辑卷,磁盘或分区以供Ceph使用。该ceph-volume实用程序通过增加索引来创建OSD ID。

创建osd

在node1执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-volume lvm create --data /dev/sdb

上面的创建过程可以分为两个阶段(准备和激活):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-volume lvm prepare --data /dev/sdb
查看osd fsid
ceph-volume lvm list
ceph-volume lvm activate {ID} {FSID}

当创建完osd之后,我们发现osd服务已经起来了

当我们在node2、node3节点执行此命令的时候报错了,发现缺少密钥文件

拷贝密钥文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scp /var/lib/ceph/bootstrap-osd/ceph.keyring node2:/var/lib/ceph/bootstrap-osd/ceph.keyring
scp /var/lib/ceph/bootstrap-osd/ceph.keyring node3:/var/lib/ceph/bootstrap-osd/ceph.keyring

修改密钥属主属组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chown ceph.ceph /var/lib/ceph/bootstrap-osd/ceph.keyring

分别在node2、node3创建osd

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-volume lvm create --data /dev/sdb

也可以分步执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-volume lvm prepare --data /dev/sdb
##获取osd id 和osd fsid
ceph-volume lvm list
##激活osd
ceph-volume lvm activate {ID} {FSID}

最后状态是这样的

添加MDS

创建mds数据目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p /var/lib/ceph/mds/ceph-`hostname -s`
chown -R ceph.ceph /var/lib/ceph/mds/ceph-`hostname -s`

创建keyring

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-`hostname -s`/keyring --gen-key -n mds.`hostname -s`

导入keyring并设置权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph auth add mds.`hostname -s` osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-`hostname -s`/keyring
chown ceph:ceph /var/lib/ceph/mds/ceph-`hostname -s`/keyring

修改ceph.conf配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat >> /etc/ceph/ceph.conf <<EOF
[mds.node1]
host = node1

[mds.node2]
host = node2

[mds.node3]
host = node3
EOF

启动mds服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl enable ceph-mds@`hostname -s` && systemctl start ceph-mds@`hostname -s`

现在状态应该是这样的

对象存储RGW安装

RGW是Ceph对象存储网关服务RADOS Gateway的简称,是一套基于LIBRADOS接口封装而实现的FastCGI服务,对外提供RESTful风格的对象存储数据访问和管理接口。RGW基于HTTP协议标准,因此非常适用于Web类的互联网应用场景,用户通过使用SDK或者其他客户端工具,能够很方便地接入RGW进行图片、视频以及各类文件的上传或下载,并设置相应的访问权限,共享给其他用户。

安装radosgw

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install ceph-radosgw -y

创建rgw相关的资源池

资源池列表及部分资源池功能介绍如下。

  • .rgw:region和zone配置信息。
  • .rgw.root:region和zone配置信息。
  • .rgw.control:存放notify信息。
  • .rgw.gc:用于资源回收。
  • .rgw.buckets:存放数据。
  • .rgw.buckets.index:存放元数据信息。
  • .rgw.buckets.extra:存放元数据扩展信息。
  • .log:日志存放。
  • .intent-log:日志存放。
  • .usage:存放用户已用容量信息。
  • .users:存放用户信息。
  • .users.email:存放用户E-mail信息。
  • .users.swift:存放swift类型的账号信息。
  • .users.uid:存放用户信息。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph osd pool create .rgw 8 8
ceph osd pool create .rgw.root 8 8
ceph osd pool create .rgw.control 8 8
ceph osd pool create .rgw.gc 8 8
ceph osd pool create .rgw.buckets 8 8
ceph osd pool create .rgw.buckets.index 8 8
ceph osd pool create .rgw.buckets.extra 8 8
ceph osd pool create .log 8 8
ceph osd pool create .intent-log 8 8
ceph osd pool create .usage 8 8
ceph osd pool create .users 8 8
ceph osd pool create .users.email 8 8
ceph osd pool create .users.swift 8 8
ceph osd pool create .users.uid 8 8

创建过程会遇到这个报错,原因是每个osd默认最多只支持250个pg,这里有两种解决办法,一种是删除之前创建的pool,并新建pool时把pg设置小一点,另一种则是修改osd默认最大pg数,这里我用了第二种,修改完配置文件后,重启mon

Error ERANGE: pg_num 8 size 3 would mean 771 total pgs, which exceeds max 750 (mon_max_pg_per_osd 250 * num_in_osds 3)

编辑配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/ceph/ceph.conf
[global]
mon_max_pg_per_osd = 1000

#重启mon
systemctl restart ceph-mon@`hostname -s`

可以使用rados lspools查看是否创建成功

新建RADOSGW用户和keyring

创建keyring

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring
chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring

生成ceph-radosgw服务对应的用户和key

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node1 --gen-key
ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node2 --gen-key
ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node3 --gen-key

添加用户访问权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-authtool -n client.rgw.node1 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
ceph-authtool -n client.rgw.node2 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
ceph-authtool -n client.rgw.node3 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring

将keyring导入集群中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node1 -i /etc/ceph/ceph.client.radosgw.keyring
ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node2 -i /etc/ceph/ceph.client.radosgw.keyring
ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node3 -i /etc/ceph/ceph.client.radosgw.keyring

编辑配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat >> /etc/ceph/ceph.conf << EOF
[client.rgw.node1]
host=node1
keyring=/etc/ceph/ceph.client.radosgw.keyring
log file=/var/log/radosgw/client.radosgw.gateway.log
rgw_frontends = civetweb port=8080
[client.rgw.node2]
host=node2
keyring=/etc/ceph/ceph.client.radosgw.keyring
log file=/var/log/radosgw/client.radosgw.gateway.log
rgw_frontends = civetweb port=8080
[client.rgw.node3]
host=node3
keyring=/etc/ceph/ceph.client.radosgw.keyring
log file=/var/log/radosgw/client.radosgw.gateway.log
rgw_frontends = civetweb port=8080
EOF

创建日志目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /var/log/radosgw
chown ceph:ceph /var/log/radosgw

拷贝keyring、ceph.confceph.conf到node2、node3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scp /etc/ceph/ceph.client.radosgw.keyring node2:/etc/ceph/ceph.client.radosgw.keyring
scp /etc/ceph/ceph.client.radosgw.keyring node3:/etc/ceph/ceph.client.radosgw.keyring
scp /etc/ceph/ceph.conf node2:/etc/ceph/ceph.conf
scp /etc/ceph/ceph.conf node3:/etc/ceph/ceph.conf

在node2、node3部署RGW

修改keyring属主

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring

创建日志目录并授权

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /var/log/radosgw
chown ceph:ceph /var/log/radosgw

启动rgw服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start ceph-radosgw@rgw.`hostname -s` && systemctl enable ceph-radosgw@rgw.`hostname -s`

查看ceph状态,发现有个小问题

使用ceph health detail查看详情,根据提示enable即可

使用curl访问服务

公众号:运维开发故事

github:https://github.com/orgs/sunsharing-note/dashboard

爱生活,爱运维

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发故事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
国产FPGA开发板上手体验:不足百元,集成ARM硬核处理器!
近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自主知识产权的芯片种类也很多,最近就购买了一块基于高云半导体FPGA芯片的开发板——Tang Nano 4K,学习一下国产FPGA的开发和使用。
单片机点灯小能手
2022/12/18
6K0
国产FPGA开发板上手体验:不足百元,集成ARM硬核处理器!
简谈CPU、MCU、FPGA、SoC芯片异同之处
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/29
1.6K0
简谈CPU、MCU、FPGA、SoC芯片异同之处
国产FPGA概况
时至今日,不管从国际形势还是国家对于“中国芯”的扶持,“国产化”这一话题越来越要付出实践,对于FPGA这一“万能芯”也是很多企业会优先考虑的。
碎碎思
2020/08/04
3.2K0
国产FPGA概况
常见处理器MCU、MPU、DSP、FPGA等嵌入式处理器概念
前文中多次出现了MCU、MPU、DSP、FPGA等嵌入式处理器概念,很多初学者可能比较迷惑,下面将对这些概念进行简单介绍。
韦东山
2022/05/05
2.3K0
常见处理器MCU、MPU、DSP、FPGA等嵌入式处理器概念
FPGA和外围接口-第一章 爱上FPGA(1.3.2 Intel FPGA 主流芯片选型 ))
这章在原计划中是没有的,网上关于FPGA的介绍不说有万篇,千篇文章是有的,所以这章简介部分会很简洁,但是对于Xilinx和Intel家的FPGA主流芯片选型指导和命名规则会详细介绍,因为这部分会是入门遇到的第一个问题。这章第二个问题会是资源的查找,一百篇文章所能遇到的问题都不一定会解决你所面临的问题,所以接下来会分享下网上常见的资源网站和论坛。在这里感谢网上各位大神和前辈的指导资料,在此一一谢过,本系列文章主要是以交流和学习为主,欢迎各位转载,转载请注明下出处,谢谢!
碎碎思
2020/06/30
1.2K0
FPGA 主流芯片选型指导和命名规则(一)
题目可能有点大,主要介绍Xilinx和Altera公司的主流芯片的选型(包括中低高端产品的介绍)和两大厂家的命名规则,主要看封装和逻辑数量。
碎碎思
2020/07/01
2.8K0
FPGA的发展历史
在过去的十年中,可编程逻辑器件(PLD)市场不断增长,对PLD的需求不断增加。具有可编程特性且可编程的芯片称为PLD。PLD也称为现场可编程器件(FPD)。FPD用于实现数字逻辑,用户可以配置集成电路以实现不同的设计。这种集成电路的编程是通过使用EDA工具进行特殊编程来完成的。
碎碎思
2022/04/14
1.6K0
FPGA的发展历史
FPGA设计流程
在设计进入之前,需要根据设计规范进行设计规划。设计规范需要转换为体系结构和微体系结构。设计架构和微架构包括将总体设计分解为小模块,以实现预期功能。在架构设计阶段,需要估计内存、速度和功率的需求。根据需要,需要为实现选择FPGA设备。
碎碎思
2022/04/14
1.1K0
FPGA设计流程
PLD- FPGA与CPLD的区别[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 http://home.eeworld.com.cn/my/space.php?uid=170289&do=blog&id=31215 FPGA与CPL
全栈程序员站长
2022/09/01
8750
FPGA零基础学习:半导体存储器和可编程逻辑器件简介
大侠好,欢迎来到FPGA技术江湖。本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有系统性学习的机会。
FPGA技术江湖
2021/03/15
5090
FPGA零基础学习:半导体存储器和可编程逻辑器件简介
关于ASIC、CPLD和FPGA介绍
ASIC(Application Specific Intergrated Circuits)即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。目前用CPLD(复杂可编程逻辑器件)和FPGA(现场可编程逻辑阵列)来进行ASIC设计是最为流行的方式之一,它们的共性是都具有用户现场可编程特性,都支持边界扫描技术,但两者在集成度、速度以及编程方式上具有各自的特点。ASIC的特点是面向特定用户的需求,品种多、批量少,要求设计和生产周期短,它作为集成电路技术与特定用户的整机或系统技术紧密结合的产物,与通用集成电路相比具有体积更小、重量更轻、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。
全栈程序员站长
2022/08/19
9390
简谈FPGA的片内资源
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/29
8310
简谈FPGA的片内资源
从Xilinx Kintex-7认识FPGA
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA开源工作室
2019/10/29
1.9K0
从Xilinx Kintex-7认识FPGA
Xilinx FPGA底层资源介绍
XILINX FPGA 芯片整体架构如下所示,整个芯片是以BANK进行划分的,不同的工艺、器件速度和对应的时钟具有不同的BANK数量(下面截图是以K7325tffg676为例):左边的BANK都是HR BANK,右侧的最下面三个是HP BANK,最上面的四个BANK是transceiver。
瓜大三哥
2020/05/07
3.9K0
TMS320C6678 DSP + Xilinx Kintex-7 FPGA核心板硬件参数资源说明分享
SOM-TL6678F核心板板载DSP、FPGA、CPLD、ROM、RAM、晶振、电源、LED等硬件资源,并通过工业级高速B2B连接器引出IO。
创龙科技Tronlong
2022/08/14
2.5K0
TMS320C6678 DSP + Xilinx Kintex-7 FPGA核心板硬件参数资源说明分享
为何TI的GPMC并口,更常被用于连接FPGA、ADC?我给出3个理由
GPMC(General Purpose Memory Controller)是TI处理器特有的通用存储器控制器接口,是AM335x、AM437x、AM5708、AM5728等处理器专用于与外部存储器设备的接口,如:
创龙科技Tronlong
2022/05/26
9280
为何TI的GPMC并口,更常被用于连接FPGA、ADC?我给出3个理由
FPGA和外围接口-第一章 爱上FPGA
FPGA是FieldProgrammable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
碎碎思
2020/06/30
1K0
全国产!全志A40i+Logos FPGA核心板(4核ARM Cortex-A7)硬件说明
SOM-TLA40iF核心板板载ARM、FPGA、ROM、RAM、晶振、电源、LED等硬件资源,并通过B2B连接方式引出IO。核心板所有器件(包括B2B连接器)均采用国产工业级方案,国产化率100%。
创龙科技Tronlong
2023/01/31
2.2K0
全国产!全志A40i+Logos FPGA核心板(4核ARM Cortex-A7)硬件说明
FPGA、DSP、ARM比较
ARM ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软 件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备市场占有90%以上的份额,可以有效地缩短应用程序开发与测试的时间,
企鹅号小编
2018/01/22
3.3K0
FPGA、DSP、ARM比较
一文讲解单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系!
首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简,在硬件和软件上都只保留需要的部分,而将不需要的部分裁去。所以嵌入式系统一般都具有便携、低功耗、性能单一等特性。
单片机技术宅
2020/03/17
2.7K0
推荐阅读
相关推荐
国产FPGA开发板上手体验:不足百元,集成ARM硬核处理器!
更多 >
LV.9
这个人很懒,什么都没有留下~
目录
  • 配置hosts解析
  • 关闭防火墙和selinux
  • 分别在三个节点设置主机名
  • 配置主机时间同步
  • 使用yum安装
    • 安装yum-plugin-priorities
    • 安装依赖包
    • 添加ceph仓库
    • 安装ceph
  • 部署monitor节点
    • 在node1添加monitor
    • 在node2、node3上添加monitor
  • 创建MGR
    • 创建密钥目录
    • 创建身份验证密钥
    • 启动mgr守护进程
  • 部署osd
    • 创建osd
    • 分别在node2、node3创建osd
  • 添加MDS
    • 创建mds数据目录
    • 创建keyring
    • 导入keyring并设置权限
    • 修改ceph.conf配置文件
    • 启动mds服务
  • 对象存储RGW安装
    • 安装radosgw
    • 创建rgw相关的资源池
    • 新建RADOSGW用户和keyring
    • 在node2、node3部署RGW
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档