云计算
文章平均质量分 61
虚拟机、容器
gaoZhuanMing
这个作者很懒,什么都没留下…
展开
-
CRUSH 算法
1. 简介CRUSH 算法能够根据每个存储设备的权重来分布数据对象,使得这个分布近似于均匀分布。数据分布是由具有层级结构的 cluster map 来控制的,其表示了可用的存储资源,以及一些逻辑元素。数据分布策略是根据放置规则来定义的,其指定了要从集群中选出多少个存储设备以存储数据副本,以及数据副本的存放限制(如,故障域隔离)。输入一个整数 xxx(通常是对象的 ID),CRUSH 算法会输出一个大小为 nnn 的有序列表 R→\mathop{R} \limits ^{\righta原创 2021-12-03 11:11:57 · 2959 阅读 · 0 评论 -
Raft 算法—集群配置变更、Log压缩、客户端交互
1. 配置变更集群的配置会包含在 log entries (使用特殊的 entries)中,并复制到其他节点上。设集群的旧配置为 ColdC_{old}Cold,新配置为 CnewC_{new}Cnew(如,CnewC_{new}Cnew 中添加或移除了某些节点)。Raft 在新旧配置之间引入了一个中间状态,称为 joint consensus,其包含了新旧配置,即其配置为 Cold,newC_{old,new}Cold,new,也就是说,此阶段的集群成员为 ColdC_{old}Cold原创 2021-12-01 11:34:17 · 325 阅读 · 0 评论 -
Raft 算法—Leader选举、Log复制
1. 复制状态机(1)客户端向服务器发送一条命令;(2)服务器上的共识模块将接收到的命令添加到自己的 log 中,然后和其他服务器上的共识模块通信,以复制该命令到其他服务器上;(3)一旦命令被成功复制到大多数服务器上之后,每个服务器上的状态机将按序执行 log 中的命令;(4)状态机输出并返回命令的执行结果。2. Raft基础集群角色Raft 集群中的节点按角色可划分为:leader、follower 和 candidate。(1)正常情况下,集群中只存在一个 leader,并由 leade原创 2021-11-30 22:05:34 · 1619 阅读 · 0 评论 -
Ceph架构
1. 简介Ceph 能够同时提供对象存储、块存储和文件存储。(1)对象存储提供 RESTful 接口;提供与 S3 和 Swift 兼容的 API;对象条带化;多站点部署和复制;(2)块存储精简配置,即能够按需分配;镜像最大可达16EB;可配置条带化;内存缓存;快照;写时复制的克隆;支持 KVM 和 libvirt;内核驱动程序支持;灾难恢复;(3)文件存储提供与 POSIX 兼容的语义;数据与元数据分离;可配置条带化;内核驱动程序支持;子目录快照;原创 2021-11-29 20:29:16 · 506 阅读 · 0 评论 -
Ceph问题及解决办法
问题1创建存储池之后出现 100.000% pgs not active,导致后续 rbd 命令执行时卡住不返回?解决办法:cd /etc/ceph/ceph osd getcrushmap -o /etc/ceph/crushmapcrushtool -d /etc/ceph/crushmap -o /etc/ceph/crushmap.txtsed -i 's/step chooseleaf firstn 0 type host/step chooseleaf firstn 0 type o原创 2021-11-28 10:51:21 · 893 阅读 · 0 评论 -
Ceph基本操作—存储池、块设备
1. 存储池创建存储池:$ ceph osd pool create data-pool 8 8pool 'data-pool' created列出存储池:$ ceph osd pool lsdata-pool设置/获取对象副本数:$ ceph osd pool set data-pool size 1set pool 1 size to 1$ ceph osd pool get data-pool sizesize: 1查看存储池的统计信息:$ rados dfPOOL原创 2021-11-28 10:50:10 · 2317 阅读 · 0 评论 -
Ceph单节点安装
1. 前置配置(1)配置主机名ceph0X 主机上:hostnamectl set-hostname ceph0XX 为具体的主机编号,如,1、2…。在所有节点上配置主机名解析:192.168.122.132 ceph01192.168.122.181 ceph02(2)关闭firewal和selinuxsystemctl stop firewalld && systemctl disable firewalldsetenforce 0(3)配置免密登录配置原创 2021-11-28 09:28:43 · 792 阅读 · 0 评论 -
Kubernetes Service
1. 简介Service 的背后是一个拥有相同标签的 Pod 集合,且这些 Pod 都提供着相同的功能。Kubernetes 为每个 Pod 都赋予了一个唯一的 IP 地址,因为 Pod 可以动态地销毁和重建,故而其 IP 地址也是动态变化的。不同于 Pod,Kubernetes 为 Service 赋予了一个 DNS 名称,且 Service 不会动态地销毁和重建,故而在其生命周期内,其对应的 IP 地址是不会改变的。Service 为我们提供了一种服务发现机制,通过访问 Service 的 DNS原创 2021-10-24 10:14:49 · 113 阅读 · 0 评论 -
Kubernetes Deployment
1. 简介Deployment 背后管理着一个或多个 ReplicaSet,并通过 ReplicaSet 来管理着一组 Pod。与 ReplicaSet 不同,Deployment 可以实现滚动更新的功能,即创建一个新的 ReplicaSet。此外,Deployment 也支持回滚,即启用旧的 ReplicaSet。2. 用法deploy.yaml:apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deploymentspe原创 2021-10-23 14:53:22 · 134 阅读 · 0 评论 -
使用 HTTP 拉取 Docker 镜像
此处以从镜像仓库 https://fl791z1h.mirror.aliyuncs.com/ 中拉取 busybox 镜像为例。首先获取镜像的 manifests 信息:$ curl -kL https://fl791z1h.mirror.aliyuncs.com/v2/library/busybox/manifests/latest{ "schemaVersion": 1, "name": "library/busybox", "tag": "latest", "archit原创 2021-10-22 10:50:04 · 1715 阅读 · 0 评论 -
Kubernetes Pod
1. 简介Pod 是一个容器集合,且集合中的容器运行于同一台主机上。同一个 Pod 中的多个容器共享相同的存储资源和网络资源。Pod 是 Kubernetes 中最小的调度单元。2. 基础用法在线测试平台:minikubepod.yaml:apiVersion: v1kind: Podmetadata: name: nginx labels: app: nginx version: devspec: containers: - name: nginx原创 2021-10-21 21:26:36 · 123 阅读 · 0 评论 -
搭建gitlab代码仓库
1. 安装系统:CentOS7其他操作系统对应的安装包见 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/$ wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.8.6-ce.0.el7.x86_64.rpm --no-check-certificate$ sudo yum install -y gitlab-ce-12.8.6-ce.0.el7.x86_64.原创 2021-10-16 16:37:44 · 221 阅读 · 0 评论 -
Docker常用命令
1. 操作容器run$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]使用指定的镜像来运行容器,并可选地在容器中运行指定的命令。分离模式:通过 -d 选项指定;容器会在任务(进程)结束时退出。前台模式:可以将控制台连接到容器中进程的标准输入、输出、错误;通过 -t 选项可以为其分配一个伪终端;通过 -i 选项可以保持标准输入处于打开状态。--rm 选项能够在容器退出时自动删除容器。[ming@localhost ~]$原创 2021-10-06 15:40:20 · 265 阅读 · 0 评论 -
Dockerfile使用
在 Docker 中,可以通过 docker build 命令和 Dockerfile 文件来构造自己的 Docker 镜像。注意,docker build 命令会递归地将构建整个上下文(如,某个本地目录)发送给 docker daemon,所以不要将根目录 / 作为构建上下文。1. FROMFROM 指令用于初始化一个新的构建阶段,并为后续指令指定一个基础镜像。FROM [--platform=<platform>] <image>[:<tag>] [AS &l原创 2021-10-04 20:07:41 · 441 阅读 · 0 评论 -
Docker安装
1. 安装 Docker此处在 CentOS7 上安装:$ cat /etc/redhat-releaseCentOS Linux release 7.9.2009 (Core)$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce原创 2021-10-04 12:13:33 · 151 阅读 · 0 评论 -
KVM常用操作
1. 虚拟机管理查看操作# 罗列出所有的虚拟机virsh list --all# 查看虚拟机的基本信息virsh dominfo vm_name_or_id# 以 xml 格式展示虚拟机的详细信息(就是定义虚拟机的 xml 文件)virsh dumpxml vm_name_or_id# 列出虚拟机所有的块设备virsh domblklist vm_name_or_id# 列出虚拟机所有的虚拟网卡virsh domiflist vm_name_or_id启停操作# 正常关闭原创 2021-09-17 08:58:25 · 224 阅读 · 0 评论 -
KVM修改虚拟机配置
1. 编辑虚拟机配置文件# 虚拟机的名称为 centos2[root@controller ~]# virsh edit centos2如,<domain type='kvm'> <name>centos2</name> <uuid>12343a79-8c41-4e75-916e-feaecc2606fc</uuid> <memory unit='KiB'>1048576</memory> <原创 2021-09-12 15:04:52 · 2670 阅读 · 1 评论 -
KVM创建虚拟机
1. 安装 KVMCentOS7:$ sudo yum install -y virt-* libvirt bridge-utils qemu-img qemu-kvm$ sudo systemctl start libvirtd.serviceUbuntu:$ sudo apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients \ bridge-utils virt-manager virt-viewer原创 2021-09-12 14:59:13 · 384 阅读 · 0 评论