CentOS7上Glusterfs的安装及使用(gluster/heketi)

Ubuntu 18.04 搭建 GlusterFS 冗余存储池实战指南 冗余存储池是保障业务高可用的核心基础设施,其本质是通过多副本、去中心化和自愈机制实现数据可恢复性、服务连续性与容量弹性。GlusterFS 作为无元数据服务器的分布式文件系统,在 Ubuntu 18.04 这一长期稳定版本上展现出独特优势:依托 XFS 文件系统优化、replica 3 原子写入、客户端驱动同步及内核 4.15 的小文件性能提升,天然适配边缘计算、视频分析等对可靠性与低运维成本敏感的场景。本文聚焦生产级落地,涵盖环境初始化、replica 卷构建、故障注入验证、Kubernetes 动态供给 阅读详情

1.glusterfs安装

安装并设置自启动:

yum -y install centos-release-gluster
yum -y install glusterfs-server
systemctl enable glusterd
systemctl start glusterd
  • 1
  • 2
  • 3
  • 4

配置每台机器hosts:

vim /etc/hosts
    10.132.47.78    lk-glusterfs-47-78 
    10.132.47.79    lk-glusterfs-47-79
    10.132.47.80    lk-glusterfs-47-80
  • 1
  • 2
  • 3
  • 4

2.glusterfs使用

2.1 法一:通过gluster命令(gluster-client)使用

2.1.1 安装glusterfs client客户端命令:

yum安装:

yum -y install centos-release-gluster
yum -y install glusterfs-client
  • 1
  • 2

/etc/hosts中添加glusterfs-server信息:

vim /etc/hosts  
    10.132.47.78    lk-glusterfs-47-78
    10.132.47.79    lk-glusterfs-47-79
    10.132.47.80    lk-glusterfs-47-80
  • 1
  • 2
  • 3
  • 4

2.1.2 gluster命令使用

为存储池添加节点Node:

gluster peer probe lk-glusterfs-47-78
gluster peer probe lk-glusterfs-47-79
gluster peer probe lk-glusterfs-47-80   
  • 1
  • 2
  • 3

创建GlusterFS卷并使用(以复本卷为例):

  • 每台机器上以/gluster/gv0目录各创建一个brick:
 mkdir -p /gluster/gv0
  • 1
  • 以每台机器的brick创建一个有3复本的逻辑卷gv0:
gluster volume create  gv0 replica 3 lk-glusterfs-47-78:/gluster/gv0 lk-glusterfs-47-79:/gluster/gv0 lk-glusterfs-47-80:/gluster/gv0 force  
  • 1
  • 启用volume:
gluster volume start gv0
  • 1
  • client挂载gv0卷到/mnt/glusterfs目录并使用:
mkdir /mnt/glusterfs
mount -t glusterfs lk-glusterfs-47-79:/gv0 /mnt/glusterfs
  • 1
  • 2

附:其他相关操作

从GlusterFS卷gv0移除某一brick:
    gluster volume remove-brick gv0 replica 2 lk-glusterfs-47-79:/gluster/gv0 force

删除GlusterFS卷gv0:
    需要先stop卷:
        gluster volume stop gv0
    再删:
        gluster volume delete gv0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.2 法二:通过Heketi提供的restapi使用

2.2.1 Heketi安装(方式一:yum部署)

安装(装在某台节点上,如10.132.47.79):

yum -y install heketi heketi-client
  • 1

配置秘钥对: 
Heketi使用SSH来配置GlusterFS的所有节点。创建SSH密钥对:

ssh-keygen -f /etc/heketi/heketi_key -t rsa -N ''
chown heketi:heketi /etc/heketi/heketi_key*
  • 1
  • 2

制作完成后会在当前目录下生成heketi_key、heketi_key.pub,将公钥heketi_key.pub拷贝到所有glusterfs节点上/etc/heketi/keketi_key.pub(包括你登陆的第一个节点),/etc/heketi/heketi.json 中 的 keyfile 指向 生成的 key(包含路径)

ssh-copy-id -i /etc/heketi/heketi_key.pub root@10.132.47.78
ssh-copy-id -i /etc/heketi/heketi_key.pub root@10.132.47.79
ssh-copy-id -i /etc/heketi/heketi_key.pub root@10.132.47.80
  • 1
  • 2
  • 3

备注,以上ssh-copy-id一句等效于以下三句:

scp /etc/heketi/heketi_key.pub root@10.132.47.78:/tmp
ssh root@10.132.47.78
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys
  • 1
  • 2
  • 3

创建存储db的文件夹:

mkdir /dcos/heketi
chown -R heketi:heketi /dcos/heketi
  • 1
  • 2

配置 heketi.json: 
这里需要注意只是测试的话用mock 授权,standalone模式就 ssh 授权,k8s下就 kubernetes授权

vim /etc/heketi/heketi.json

{
  "_port_comment": "Heketi Server Port Number",
  "port": "8088",

  "_use_auth": "Enable JWT authorization. Please enable for deployment",
  "use_auth": false,

  "_jwt": "Private keys for access",
  "jwt": {
    "_admin": "Admin has access to all APIs",
    "admin": {
      "key": "123456"
    },
    "_user": "User only has access to /volumes endpoint",
    "user": {
      "key": "123456"
    }
  },

  "_glusterfs_comment": "GlusterFS Configuration",
  "glusterfs": {
    "_executor_comment": [
      "Execute plugin. Possible choices: mock, ssh",
      "mock: This setting is used for testing and development.",
      "      It will not send commands to any node.",
      "ssh:  This setting will notify Heketi to ssh to the nodes.",
      "      It will need the values in sshexec to be configured."
    ],
    "executor": "ssh",

    "_sshexec_comment": "SSH username and private key file information",
    "sshexec": {
      "keyfile": "/etc/heketi/heketi_key",
      "user": "root"
    },

    "_db_comment": "Database file name",
    "db": "/dcos/heketi/heketi.db"
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

重启heketi服务:

systemctl enable heketi
systemctl restart heketi
  • 1
  • 2

测试heketi是否好用:

curl http://localhost:8088/hello
  • 1

2.2.2 Heketi安装(方式二:容器化部署)

docker run启动: 
You will need to create a directory which has a directory containing configuraiton and any private key if necessary, and an empty directory used for storing the database. Directory and files must be read/write by user with id 1000 and if an ssh private key is used, it must also have a mod of 0600.

mkdir -p /dcos/heketi-docker/config
mkdir -p /dcos/heketi-docker/db
cp /etc/heketi/heketi.json /dcos/heketi-docker/config/                      ---复用2.2.1的heketi.json
cp /etc/heketi/heketi_key /dcos/heketi-docker/config/                       ---复用2.2.1的heketi_key
chmod 600 /dcos/heketi-docker/config/heketi_key
chown 1000:1000 -R /dcos/heketi-docker

To run:

# docker run --name=heketi -d -p 8089:8088 \
             -v /dcos/heketi-docker/config:/etc/heketi \
             -v /dcos/heketi-docker/db:/dcos/heketi \
             -v /etc/hosts:/etc/hosts \
             -v /etc/localtime:/etc/localtime \
             heketi/heketi:4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

更进一步,可以将heketi部署到k8s上:

chmod 600 /dcos/heketi-docker/config/heketi_key
chown 1000:1000 -R /dcos/heketi-docker
  • 1
  • 2

heketi.yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: heketi
  namespace: kube-system
  labels:
    app: heketi
spec:
  replicas: 1
  selector:
    matchLabels:
      app: heketi
  template:
    metadata:
      labels:
        app: heketi
    spec:
      containers:
        - name: heketi
          image: heketi/heketi:4        ----这个镜像包含heketi和heketi-cli
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - name: config
              mountPath: /etc/heketi
            - name: db
              mountPath: /dcos/heketi
            - name: time
              mountPath: /etc/localtime
            - name: hosts
              mountPath: /etc/hosts
          ports:
            - containerPort: 8088
              name: heketi-api
      volumes:
        - name: config
          hostPath:
            path: /dcos/heketi-docker/config
        - name: db
          hostPath:
            path: /dcos/heketi-docker/db
        - name: time
          hostPath:
            path: /etc/localtime
        - name: hosts
          hostPath:
            path: /etc/hosts
      nodeSelector:
        kubernetes.io/hostname: k8smaster01
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: heketi
  name: heketi
  namespace: kube-system
spec:
  type: NodePort
  ports:
  - name: heketi
    port: 8089
    protocol: TCP
    targetPort: 8088
    nodePort: 30088
  selector:
    app: heketi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66

2.2.3 heketi-cli使用

Heketi集群初始化

  • 创建cluster:
heketi-cli --server http://10.132.47.79:8088 --user admin --secret 123456 --json=true cluster create

{"id":"353fe5b92fa2a4d8671b6efdac8a5fd5","nodes":[],"volumes":[]}
  • 1
  • 2
  • 3
  • 将3个节点作为node添加到cluster:
heketi-cli --server http://10.132.47.79:8088 --user admin --secret 123456 --json=true node add --cluster="353fe5b92fa2a4d8671b6efdac8a5fd5" --management-host-name=10.132.47.78 --storage-host-name=10.132.47.78 --zone=1

{"zone":1,"hostnames":{"manage":["10.132.47.78"],"storage":["10.132.47.78"]},"cluster":"353fe5b92fa2a4d8671b6efdac8a5fd5","id":"a117cd328d609acc15e88dc0b6ab4889","devices":[]})

heketi-cli --server http://10.132.47.79:8088 --user admin --secret 123456 --json=true node add --cluster="353fe5b92fa2a4d8671b6efdac8a5fd5" --management-host-name=10.132.47.79 --storage-host-name=10.132.47.79 --zone=1

{"zone":1,"hostnames":{"manage":["10.132.47.79"],"storage":["10.132.47.79"]},"cluster":"353fe5b92fa2a4d8671b6efdac8a5fd5","id":"5d3fbc8d0ac62d9c950d81df2f274dc6","devices":[]}

heketi-cli --server http://10.132.47.79:8088 --user admin --secret 123456 --json=true node add --cluster="353fe5b92fa2a4d8671b6efdac8a5fd5" --management-host-name=10.132.47.80 --storage-host-name=10.132.47.80 --zone=1

{"zone":1,"hostnames":{"manage":["10.132.47.80"],"storage":["10.132.47.80"]},"cluster":"353fe5b92fa2a4d8671b6efdac8a5fd5","id":"a302a8367f18524ab5236e99f09072fe","devices":[]}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

注意: 
对接k8s的话,上边这个必须management-host-name要用ip地址,不可以用域名,否则从controller-manager中可以看到报错:

glusterfs: failed to create endpoint Endpoints "glusterfs-dynamic-gluster-pvc1" is invalid: [subsets[0].addresses[0].ip: Invalid value: "lk-glusterfs-47-80": must be a valid IP address, (e.g. 10.9.8.7), subsets[0].addresses[1].ip: Invalid value: "lk-glusterfs-47-79": must be a valid IP address, (e.g. 10.9.8.7), subsets[0].addresses[2].ip: Invalid value: "lk-glusterfs-47-78": must be a valid IP address, (e.g. 10.9.8.7)]
  • 1
  • 2
  • 每台设备node上各添加一块裸硬盘/dev/sdb(没创建过任何分区),创建device:
heketi-cli --server http://10.132.47.79:8088 --user admin --secret 123456 --json=true device add --name="/dev/sdb" --node="a117cd328d609acc15e88dc0b6ab4889"
heketi-cli --server http://10.132.47.79:8088 --user admin --secret 123456 --json=true device add --name="/dev/sdb" --node="5d3fbc8d0ac62d9c950d81df2f274dc6"
heketi-cli --server http://10.132.47.79:8088 --user admin --secret 123456 --json=true device add --name="/dev/sdb" --node="a302a8367f18524ab5236e99f09072fe"
  • 1
  • 2
  • 3

其实以上三步可以简化成通过topology文件创建的方式:

  • 创建topology.json文件:
vim /etc/heketi/topology.json
{
  "clusters": [
    {
      "nodes": [
        {
          "node": {
            "hostnames": {
              "manage": [
                "lk-glusterfs-47-78"
              ],
              "storage": [
                "10.132.47.78"
              ]
            },
            "zone": 1
          },
          "devices": [
            "/dev/sdb"
          ]
        },
        {
          "node": {
            "hostnames": {
              "manage": [
                "lk-glusterfs-47-79"
              ],
              "storage": [
                "10.132.47.79"
              ]
            },
            "zone": 1
          },
          "devices": [
            "/dev/sdb"
          ]
        },
        {
          "node": {
            "hostnames": {
              "manage": [
                "lk-glusterfs-47-80"
              ],
              "storage": [
                "10.132.47.80"
              ]
            },
            "zone": 1
          },
          "devices": [
            "/dev/sdb"
          ]
        }
      ]
    }
  ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

该文件格式比较简单,基本上是告诉heketi要创建一个3节点的集群,其中每个节点包含的配置有FQDN,IP地址以及至少一个将用作GlusterFS块的备用块设备。

  • 将该文件发送给heketi创建:
以systemd起heketi:
    heketi-cli --server http://10.132.47.79:8088 --user admin --secret 123456 topology load --json=/etc/heketi/topology.json

以容器起heketi&heketi-cli:
    docker exec 容器ID heketi-cli --server http://10.142.21.21:30088 --user admin --secret 123456 topology load --json=/etc/heketi/topology.json

以k8s方式起heketi&heketi-cli:
    kubectl exec -it heketi-5ff9bb8c89-dzsc9 -n kube-system heketi-cli topology load -- --json=/etc/heketi/topology.json --server http://10.142.21.21:30088 --user admin --secret 123456
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果: 
创建成功后,heketi会在每个gluster节点上创建一个逻辑卷组(vg_2d8771e16bfe0b267fe2b7133584af43),通过vgscan或vgdisplay可以看到

创建volume:

以systemd起heketi:
    heketi-cli --server http://10.132.47.79:8088 --user admin --secret 123456 volume create --size=100 --replica=3 --clusters=d691b29a06374c4da7e94bba71d027bf

以容器起heketi:
    docker exec 容器ID heketi-cli --server http://10.142.21.23:30088 --user admin --secret 123456 volume create --size=100 --replica=3 --clusters=d691b29a06374c4da7e94bba71d027bf

以k8s方式起heketi&heketi-cli:
kubectl exec -it heketi-5ff9bb8c89-dzsc9 -n kube-system heketi-cli topology load -- --server http://10.142.21.21:30088 --user admin --secret 123456 volume create --size=100 --replica=3 --clusters=d691b29a06374c4da7e94bba71d027bf
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果: 
结果是在相应节点的逻辑卷组(vg_2d8771e16bfe0b267fe2b7133584af43)下会创建逻辑卷(/var/lib/heketi/mounts/vg_7157a2d1d7899269823997ad62e6debd/brick_1185ef33c9719d9063ccc2ccd0df96e7/brick)作为glusterfs的brick

gluster volume info

Volume Name: vol_50b5237866378d655af326a74fc7d68c
Type: Distributed-Replicate
Volume ID: b82dc1b3-b59c-48cd-ace1-155a0c05c42f
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 3 = 6
Transport-type: tcp
Bricks:
Brick1: 10.142.21.22:/var/lib/heketi/mounts/vg_7157a2d1d7899269823997ad62e6debd/brick_1185ef33c9719d9063ccc2ccd0df96e7/brick
Brick2: 10.142.21.27:/var/lib/heketi/mounts/vg_a850891bc0f47849bfdbdb115ee19656/brick_75894b35ae36dd5253bd79df1539b970/brick
Brick3: 10.142.21.21:/var/lib/heketi/mounts/vg_78a29014ac0df3d31b1a357e096e8917/brick_3423914cb4d9873c670f5fab0ffe44e5/brick
Brick4: 10.142.21.25:/var/lib/heketi/mounts/vg_25cc714589cec30e3550297cced4ce44/brick_6ca46dd4a13f7ac0b598d83fbf43c2fc/brick
Brick5: 10.142.21.26:/var/lib/heketi/mounts/vg_12e5dbb7b9372e0d72b8ec2166b68048/brick_87e969be58d93ff7deba65587d2e5637/brick
Brick6: 10.142.21.24:/var/lib/heketi/mounts/vg_54b5dc50bfe00644a39e289d9abf7c99/brick_5a21762ac6c5ab35472648455310af56/brick
Options Reconfigured:
transport.address-family: inet
nfs.disable: on

heketi-cli --server http://10.142.21.21:30088 --user admin --secret 123456 topology info
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

参考: 
1.https://wiki.centos.org/SpecialInterestGroup/Storage/gluster-Quickstart 
2.https://jimmysong.io/kubernetes-handbook/practice/storage-for-containers-using-glusterfs-with-openshift.html

GlusterFS维护总结 【场景1】某个GlusterFS节点的操作系统Down,需要重装系统和GlusterFS的场景。 解决办法如下: (1)先别启动GlusterFS服务 重新安装GlusterFS后,设置好对应的Brick目录和挂载完对应的存储,暂时别启动GlusterFS服务。 (2)获取该节点UUID信息 通过观察集群的其他节点保存的节点UUID信息,得到损坏节点的UUID信息。 ls命令查看一个完... 阅读详情

相关推荐

【Docker】从零构建达梦DM8轻量级服务镜像:实战与优化

本文详细介绍了从零开始构建达梦DM8轻量级Docker镜像的完整实战流程。通过分析传统安装方式的痛点,阐述了使用Docker封装数据库的优势,并重点讲解了如何利用静默安装、精简组件、多阶段构建等优化技巧,打造一个体积小巧、启动迅速、配置灵活的DM8服务镜像,助力实现开发、测试与部署的环境一致性与高效性。

ooo22的博客 521

Centos 7搭建GlusterFS分布式文件系统群集

关于GlusterFS分布式文件系统工作原理及相关概述请参考博文:GlusterFS分布式文件系统概述 一、搭建GlusterFS分布式文件系统群集 此案例相关软件包请访问:https://pan.baidu.com/s/1xazQAkR2Lm31njwu88Z9qA 提取码:qdiy 环境如下: 服务器相关信息: 磁盘相关信息: 部署前准备工作:在所有节点上执行以下操作,添加30G新硬盘,通过f...

:Struggle. 487

Dify+MCP Server打造禅道AI智能助手

Dify AI与MCP Server结合打造的禅道AI智能助手,实现了项目管理智能化升级。该方案通过大语言模型和自动化工作流,提供四大核心功能:1)自动化报表生成,支持多维度数据统计与可视化;2)禅道系统管理操作,简化产品/项目/任务管理流程;3)基于知识库的智能问答系统;4)数据库灵活查询与可视化输出。系统采用分层架构,通过MCP协议实现AI与数据源解耦,解决了传统禅道在数据孤岛、工具碎片化等问题。实际应用验证了其在用户管理、任务创建、Bug处理等场景的高效性,显著提升了项目管理效率。

oNew_Lifeo的博客 1711

centos7下的glusterfs的安装与使用

环境说明: 两台虚拟主机,IP分别为192.168.1.222和192.168.1.233,分别装上glusterfs。   一、下载glusterfs源码包 https://download.gluster.org/pub/gluster/glusterfs/3.6/ 如:glusterfs-3.6.9.tar.gz   二、编译安装 安装必要的依赖 > yu...

weixin_33670786的博客 398

Simplorer-Maxwell联合仿真速度太慢?我用这3个技巧把仿真时间砍半(附SVPWM周期与步长设置避坑)

本文详细介绍了Simplorer-Maxwell联合仿真性能优化的3个关键技巧,包括仿真步长与周期的科学配置、基于任务调度的加速技术以及模型简化与精度平衡。特别针对SVPWM参数设置提供了避坑指南,帮助工程师在不牺牲精度的情况下将仿真时间缩短50%以上,适用于电机驱动系统开发等场景。

weixin_29189381的博客 466

shader基于高度的权重混合

效果图: 基于高度的权重混合 , 效果描述: (1)混合:三层混合, 例如 第一层是草,第二层是石头,第三层是沙子,三者混合显示 (2)权重: 三层的权重的和 为1, 三者是此消彼长的关系 (3)高度:高度会限制或者说是 束缚 着 效果 关于混合,再多说几句: (1)基于权重的混合:权重 ,跟顺序没有关系 只跟权重的大小有关系(在一层一层界限不清晰的地方,特别适用!!效果极好!!!!) (2)基于叠加的混合: 叠加 就是 一层一层的往上加。。。。 所以顺序特别重要(在雪地等效果中使用:因为

木马人 1119

GlusterFS操作记录(5) GlusterFS+Heketi配置(独立部署)

GlusterFS作为分布式共享文件系统也用了很多年了,简单好用,但是一直没有系统化记录下来,很是零散。这次趁着Kubernets集成GlusterFS作为共享存储,尽量记录些东西。 GlusterFS操作记录(1) GlusterFS简述 GlusterFS操作记录(2) GlusterFS存储卷类型介绍 GlusterFS操作记录(3) GlusterFS架构介绍 GlusterFS操作记...

新梦易明 5392

基于verilog的16QAM调制

思路1:正交调幅法——实现16QAM调制,可以理解为时相位相差90度的两个正弦波的4PAM叠加。 4比特输入经过2->4进制转化得到两路2比特输入,然后分别经过4PAM后叠加所得输出即为16QAM调制结果。 具体程序稍后编写。 思路2:复合相移法——可以借助前面编写的QPSK,相当于两路幅度不同的QPSK的叠加,比如幅度分别取1和3 。 思路1正交调幅法的设计方案: 两正弦波相位差...

weixin_30725467的博客 2929

k8s + heketi + glusterfs动态存储管理及扩容GlusterFS集群 一路踩坑记录

k8s + heketi + glusterfs动态存储管理及扩容GlusterFS集群

qq_15138049的博客 1万+

FPGA/IC 秋招笔试/面试题总结(目录)

FPGA/IC 秋招笔试/面试题总结-目录介绍 文章目录FPGA/IC 秋招笔试/面试题总结-目录介绍一、FPGA内部资源1. 什么是FPGA2.FPGA内部资源二、同步时钟、同步/异步电路1.同步时钟2.同步/异步电路三、同步复位/异步复位1.同步复位2. 异步复位3. 异步复位同步释放四、同步FIFO/异步FIFO1.同步FIFO2.异步FIFO五、FIFO最小深度计算1.FIFO最小深度2.示例分析六、逻辑电平1.TTL电平标准2.LVTTL电平标准3.CMOS电平标准4.LVCOMS电平标准5.RS

Crazzy_M的博客 2万+

C#【必备技能篇】Winform实现多语言切换(.resx文件的应用)

在实际的项目开发中,软件需要实现多语言切换。本文通过一个实际的例子,可以让你学习到这个技能。

星Yeah 的博客 1万+

k8s使用glusterfs(静态供给、动态供给)、glusterfs的安装与使用

k8s使用glusterfs(静态供给、动态供给)、glusterfs的安装与使用

MssGuo的博客 5776

华为OD机考双机位C卷 - 风险投资计划(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 风险投资计划(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 548

Centos7 - kubernetes使用GlusterFS作为storageclass

k8s + clusterfs 进行storageclass自动创建PV。

vdon168的博客 655

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Kubernetes部署(十):储存之glusterfs和heketi部署

相关内容: Kubernetes部署(一):架构及功能说明Kubernetes部署(二):系统环境初始化Kubernetes部署(三):CA证书制作Kubernetes部署(四):ETCD集群部署Kubernetes部署(五):Haproxy、Keppalived部署Kubernetes部署(六):Master节点部署Kubernetes部署(七):Node节点部署Kubernetes部署(八):...

weixin_34405925的博客 1067

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

使用kubernetes方式部署glusterfs作为kubernetes持久化文件存储

准备四台虚拟机,系统使用centos7,并安装配置好kubernetes集群环境,本次实验使用kubeadm来安装单master多node集群。所有工作节点新挂在一块硬盘,不需要格式化。 [root@k8s-node1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 300M 0 part /boot ├─sda2 8:2 0 3

myitsite的博客 1835

Heketi启动错误之 ssh: unhandled key typeUnable to get keyfile

Heketi启动失败的问题,报错信息是关于SSH私钥无法读取的问题

清瞳清的博客 833

centos7部署glusterfs

创建复制卷glustervolumecreatevolume1replica2glusterfs01:/u01/isi/glusterdata/glusterfs02:/u01/isi/glusterdata/创建分布式卷glustervolumecreatevolume1192.168.40.134:/u01/isi/glusterdata/192.168.40.135:/u01/isi/glusterdata/一个文件会同时存储在两个brick上,一个是存储一个是备份。

yunfan_chang的博客 1505

mysql使用gluster共享存储_kubernetes配置glusterfs动态存储

GlusterFS分布式文件系统一.简单介绍分布式存储按其存储接口分为三种:文件存储、块存储、对象存储*文件存储通常支持POSIX接口(如glusterFS,但GFS、HDFS是非POSIX接口的),可以像普通文件系统(如ext4)那样访问,但又比普通文件系统多了并行化访问的能力和冗余机制。主要的分布式存储系统有TFS、CephFS、GlusterFS和HDFS等。主要存储非结构化数据,如普通文件...

weixin_33140481的博客 864

Glusterfs篇之实现glusterfs server与client端的关联

一、前言 当我们使用Glusterfs作为服务器中的数据文件共享时,当搭建好了glusterfs server端后,这时需要进行gfs server与client的关联,然后通过数据挂载 实现服务器中数据文件的资源共享。 这个是需要在Glusterfs server以及client上做相关的配置。 二、实现配置关联步骤 1、实现配置关联的前提:server端与client端机器要保持相互通信,即就是可以互相ping通。 要实现机器之间可以互通,可参考我的该篇文章: https://blog.youkuaiyun.com

小橙子的笔记屋 2005

关于CentOS/RHEL中GlusterFS版本说明

在CentOS/RHEL 7.2版本中,默认安装的GlusterFS版本为:3.7.1-16在CentOS/RHEL 6.7版本中,默认安装的GlusterFS版本为:3.6.0.54-1当前GlusterFS最新版本:3.6对应最新版本为3.6.83.7对应最新版本为3.7.6在线上环境到底该如何选择GlusterFS版本呢?可参考:http://dangz...

weixin_34247032的博客 245

K8s中集成Heketi使用Glusterfs

K8s中集成Heketi使用Glusterfs,Heketi是一个GlusterFs管理软件,提供相应的rest api服务,

冰之杍的博客 2144

Heketi——一种GlusterFS集群管理工具

作者: 石文 时间:2019-01-13 Heketi是一个GlusterFs管理软件,可以管理glusterFS集群的卷创建、删除等操作。 Heketi管理GlusterFS集群需要注意: GlusterFS集群的各peer必须要有未安装文件系统的磁盘设备(磁盘设备未进行格式化) GlusterFS集群各peer的端口号不能太少,不然当peer上的brick将端口号用完后,会造成无法创...

zhinengyunwei的博客 5649

最后的组合:K8s 1.24 基于 Hekiti 实现 GlusterFS 动态存储管理实践

知识点入门级GlusterFS 和 Heketi 简介GlusterFS 安装部署Heketi 安装部署Kubernetes 命令行对接 GlusterFS实战服务器配置(架构 1:1 复刻小规模生产环境,配置略有不同)主机名IPCPU内存系统盘数据盘用途24501002450100245010024501002450100k8s-worker2450100k8s-workerstorage-02450100+

KubeSphere 2750

KubeSphere使用GlusterFS作为持久化存储

K8s(Kubesphere)使用GlusterFS做持久化解决方案验证。从glusterfs集群搭建(基于Heketi),并实现K8s数据持久化到GlusterFS的完整测试验证。

bacawa的博客 1382
上一篇: SELinux配置文件(/etc/selinux/config
下一篇: kubernetes glusterfs heketi
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值