自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(280)
  • 收藏
  • 关注

原创 Golang中int, int8, int16, int32, int64和uint区别

uint: 和int类似,uint的大小也取决于系统的位数,在32位系统中通常等同于uint32,在64位系统中通常等同于uint64。uint16: 占用2个字节(16位),能够表示的无符号整数范围从。uint32: 占用4个字节(32位),能够表示的无符号整数范围从。uint64: 占用8个字节(64位),能够表示的无符号整数范围从。int32: 占用4个字节(32位),能够表示的有符号整数范围从。int64: 占用8个字节(64位),能够表示的有符号整数范围从。

2024-01-23 11:30:18 1293

原创 go 语言中 json.Unmarshal([]byte(jsonbuff), &j) 字节切片得使用场景

当我们使用[]byte(jsonBuf)时,我们实际上是在告诉Go将jsonBuf这个变量的内容——假设它是一个字节切片——转换成一个新的[]byte切片。在Go语言中,[]byte(jsonBuf)这个表达式的作用是将一个名为jsonBuf的字节切片(byte slice)转换为[]byte类型。这里涉及到了Go语言中的类型转换概念。简而言之,[]byte(jsonBuf)的作用是将jsonBuf这个字节切片转换为[]byte类型,以便在Go程序中进行进一步的字节操作。

2024-01-22 14:48:33 684

原创 go 语言之 select

需要注意的是,`select` 语句必须在 `go` 协程中使用,以实现并发的效果。此外,`select` 语句中的通道操作必须是非阻塞的,否则会导致整个 `select` 语句阻塞。2. 多个通道的写入:当你需要将数据同时写入多个通道中,并且只关心第一个可写入的通道时,可以使用 `select` 来同时监听多个通道的写入操作。1. 多个通道的读取:当你需要从多个通道中读取数据,并且只关心先到达的数据时,可以使用 `select` 来同时监听多个通道的读取操作。希望这些信息对你有所帮助!

2023-11-15 11:18:36 430

原创 github如何删除 仓库中已经存在的.pyc文件

删除的时候,如果遇到报错fatal: pathspec 'xxx.pyc' did not match any files的情况,可能是因为没提交…,就好了,不知道为啥。有可能是因为.gitignore没有提交,占用了某些文件吧。提交的时候使用git add --all,然后把所有文件都推送到了远程仓库中。现在我想在远程仓库中删除它们,例如*.pyc文件。我解决方式是commit一下,

2023-06-05 10:31:35 293

转载 出现Permission denied (publickey)的解决方法

客户端没有秘钥对:通过ssh-keygen命令生成秘钥对,默认文件夹是~/.ssh文件夹,将.ssh文件夹内id_rsa.pub的内容拷贝到服务器上的~./ssh/authorized_keys文件末尾(若服务器上~./ssh/authorized_keys不存在,则也可以使用ssh-keygen来生成文件结构)本地生成的一对秘钥,私钥~/.ssh/id_rsa和公钥~/.ssh/id_rsa.pub。服务端使用公钥(~/.ssh/id_rsa.pub)对私钥加密后的字符串进行解密。// 更改文件所有权。

2023-04-19 15:21:30 5683 1

原创 centos 中如何启动两个rabbitmq 服务

5.我们以rabbit为主节点,剩下两个为从节点(在从节点执行以下命令,主节点不用动,-n指定具体那个节点)启动两个rabbitmq 服务。

2023-02-23 19:09:55 314

转载 Centos安装python39(其他版本也是一样的流程)

centos安装python39(其他版本也是一样的流程)

2023-01-13 15:17:39 1244

转载 CentOS文件权限管理

的,比如我们常见的文件/etc/shadow文件,我们发现它的权限是---------,可是我们作为普通用户还是可以进行修改自己的密码,这就意味着我们修改了shadow的内容,这是为什么呢,我们知道root这个大变态即便对文件没有任何权限,依旧可以修改查看它,所以,这会不会和root有关呢?,他是对最大权限的设置,我们一般不会管他,我们在设定ACL权限时,它是默认随着我们ACL权限的设置而变化的,保证我们设置的每个权限都能生效,如果我们想限定最大权限,我们可以在设置完所有ACL权限时,对它进行设置。

2023-01-06 17:09:55 2195

转载 Linux进程管理中,使用SIGTERM和SIGKILL有什么区别?

我希望您现在对使用SIGTERM或SIGKILL终止进程有了更好的理解。

2023-01-04 15:08:35 762

转载 .gitignore 文件不生效

所以我们使用git rm -r --cached .去清除所有的缓存。然后再次提交代码就可以了,这样.gitignore文件就会生效了。如果你第一次提交项目时候忘记写.gitignore文件,后来再添加想要忽略的文件是没有用的,因为在缓存中已经标记记录了该项目不存在gitignore文件了。.gitignore文件只会在第一次提交项目的时候写入缓存,.gitignore文件是不生效的。

2023-01-04 14:16:29 336

原创 如何判断字符串中包含中文

【代码】如何判断字符串中包含中文。

2022-10-13 16:10:08 362

原创 git rebase -i 合并提交记录

rebase为变基git rebase -i 命令可以压缩合并多次提交格式:git rebase -i [startpoint] [endpoint]其中-i的意思是–interactive,即弹出交互式的界面让用户编辑完成合并操作,[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit(注:该区间指定的是一个前开后闭的区间)。在查看git的log后,可以使用如下命令。

2022-10-11 10:53:55 3117

转载 k8s 指定pod的ip

使用如下配置给pod固定ip。

2022-09-28 16:23:39 2588

转载 qemu-img磁盘管理

rw-r--r--. 1 root root 193K 12月 17 02:15 disk2.qcow2。-rw-r--r--. 1 root root 193K 12月 17 02:18 disk1.qcow2。-rw-r--r--. 1 root root 193K 12月 17 02:15 disk2.qcow2。-rw-r--r--. 1 root root 10G 12月 17 02:14 disk1.raw。1)为disk2.qcow2制作增量镜像disk2-A.qcow2。...

2022-08-11 20:29:05 904

原创 【无标题】

4)dummy0网卡和kube-ipvs0网卡:在安装k8s集群时,启用了ipvs的话,就会有这两个网卡。(将service的IP绑定在kube-ipvs0网卡上)一、网卡知识(lo、eth0、docker0、dummy0、kube-ipvs0、weave等网卡)(3)docker0网卡:安装docker软件之后,自动生成的docker网桥。(2)eth0网卡:用于与其他主机通信的网卡。(1)lo网卡:用于与本地内部通信的网卡。...

2022-08-05 11:48:35 246

转载 什么是缓冲区(buffer),什么是缓存(cache)

缓冲区缓冲区是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。为什么要引入缓冲区我们为什么要引入缓冲区呢?比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去磁盘中读取,这样就可以减少磁盘的读写次数,再加上计算机对缓冲区的操作大大快于对磁盘的操作,故应用缓冲区可大大提高计算机的运行速度。...

2022-08-03 17:19:15 1044

转载 KVM虚拟化技术的-NUMA技术和应用

其基本特征是由多个SMP服务器通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种完全无共享(Share Nothing)结构,因而扩展能力最好,理论上其扩展无限制,目前的技术可实现512个节点互联,数千个CPU。在SMP系统上,所有的cpu对共享内存控制器拥有相同的访问权限。NUMA架构每个处理器都可以访问自己的存储器和其他处理器的存储器,访问自己的存储器要比访问其他的存储器快的多,速度相差10-100倍,所以NUMA调优的目的就是让处理器尽量访问自己的存储器,以提高访问速度。.

2022-08-03 16:17:35 2313

转载 大页内存原理及使用设置

当超出TLB的存储极限时,就会发生TLBmiss,之后,OS就会命令CPU去访问内存上的页表。32位CPU的寻址宽度是0~0xFFFFFFFF,计算后得到的大小是4G,也就是说可支持的物理内存最大是4G。但在实践过程中,碰到了这样的问题,程序需要使用4G内存,而可用物理内存小于4G,导致程序不得不降低内存占用。在程序内存不够用时,还可以将不常用的物理内存页转移到其他存储设备上,比如磁盘,这就是大家耳熟能详的虚拟内存。MMU的引入,解决了对物理内存的限制,对程序来说,就像自己在使用4G内存一样。...

2022-07-26 16:35:56 1059

原创 eventlet 协程

本系列文章翻译自英文官方文档,原文请访问。

2022-07-20 10:29:04 391

原创 RabbitMQ 集群

如果没有持久化的话,然后就没有然后了。因此,在集群环境中,队列只有元数据会在集群的所有节点同步,但队列中的数据只会存在于一个节点,数据没有冗余且容易丢,甚至在durable的情况下,如果所在的服务器节点宕机,就要等待节点恢复才能继续提供消息服务。默认的情况下,消息只会存在于它被创建的节点上,但是它们在所有节点上可见和可访问。比如,如果一个节点可以存放1GB的消息,增加另外两个节点只会增加另外两个拷贝而已。对于Queue来说,消息实体只存在于其中一个节点,A、B两个节点仅有相同的元数据,即队列结构。...

2022-07-18 11:40:04 397

转载 lun的概念

在磁盘阵列和磁带库大行其道的时代,存储越来越智能化,越来越像一个独立的机器,实际上存储和主机的电气独立本来就是一个必然趋势。有了独立的磁盘阵列用了之后,服务器只要看到存储的控制系统,就有可能使用磁盘阵列的磁盘资源,但是磁盘阵列不可能只为某一个服务器来使用,所以他必须管制主机使用某部分磁盘资源。一个阵列的控制系统,大多都有虚拟化的功能,阵列想让主机看到什么样的东西,主机才能看到相应的东西。,具体的做法,就是生成一个特别的设备文件,操作系统操作这个特殊的设备文件。而我们知道,设备文件。那么,必然的,同一个。..

2022-07-15 14:31:30 1166

原创 openstack 相关博客

包含很多openstack相关的分析。

2022-07-15 10:46:49 121

原创 Git配置默认pull、push地址

、Git配置默认pull、push地址 git remote add -f origin https://github.com/simpleOrg/simpleApp.gitgit config -e #能够打开配置文件,直接在打开的文件中进行修改就可以 $ git push warning: push.default is unset;warning: push.default is unset; its implicit value is changing inGit 2

2022-07-14 17:12:46 1241

转载 python编码解码转换问题

为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成“\xe4\xb8\xad\xe6\x96\x87”的形式?为什么会报错“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)”?本文就来研究一下这个问题。字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符

2022-07-08 16:49:15 626

原创 openstack 虚拟机关于NUMA

NUMA:(Non Uniform Memory Access)即非一致内存访问架构。NUMA具有多个节点(Node),每个节点可以拥有多个CPU(每个CPU可以具有多个核或线程),节点内使用共有的内存控制器,因此节点的所有内存对于本节点的所有CPU都是等同的,而对于其它节点中的所有CPU都是不同的。节点可分为本地节点(Local Node)、邻居节点(Neighbour Node)和远端节点(Remote Node)三种类型。本地节点:对于某个节点中的所有CPU,此节点称为本地节点;邻居节点:与本地节点相

2022-07-08 11:03:57 1244

转载 快照和备份

一句话答案:快照是数据存储的某一时刻的状态记录;备份则是数据存储的某一个时刻的副本。这是两种完全不同的概念。先说背景知识:我们现在电脑上的数据,记录方式都是地址->数据这样存放的。例如我们最熟悉的机械硬盘,最小存储单位是扇区,老式硬盘一个扇区512字节,新式硬盘一个扇区4096字节。每个扇区都有自己的地址,现在主流的LBA寻址方式,就是从0开始,0,1,2,3,……,N这样。数据的物理存储当然,对于外部存储,我们一般不会这样直接存放数据,我们可能通过硬盘分区,并且格式化对应分区后存放数据,于是就变成这样的情

2022-06-29 19:25:55 1085

转载 NBD Network Block Device

1. 介绍NBD(Network Block Device),即网络块设备。可以将一个远程主机的磁盘空间,当作一个块设备来使用。就像一块硬盘一样使用它,你可以很方便的将另一台服务器的硬盘空间,增加到本地服务器上。NBD与NFS有所不同,NFS只是提供一个挂载点供客户端使用,客户端无法改变这个挂载点的分区格式,而NBD提供的是一个块设备,客户端可以把这个块设备格式化成各种类型的分区,更便于用户的使用。NBD是一个内核模块,大部分Linux发行版都已包含它。在centos中, 编译成模块NBD, 保存在 /l

2022-06-23 14:50:01 498

原创 dmsetup命令

A.2. DMSETUP 命令 命令是一个用来与 Device Mapper 沟通的命令行封装器(wrapper)。可使用 命令的 、、 和 选项查看 LVM 设备的常规信息,如以下小节所述。有关 命令的额外选项和功能,请参考 (8) man page。 命令提供有关 Device Mapper 设备概述。如果没有指定设备名称,则输出所有目前配置的 Device Mapper 设备信息。如果指定了设备,那么这个命令只会生成该设备信息。 命令提供以下分类信息:设备名称。LVM 设备以用小横线分隔的卷

2022-06-23 14:19:58 3145

原创 dev/mapper的解释

二、/dev/mapper目录的解释 为了方便叙述,假设一台服务器有三块硬盘分别为a,b,c,每块硬盘的容量为1T。在安装Linux的时候,先根据系统及自身的需要建立基本的分区,假设对硬盘a进行了分区,分出去了0.1T的空间挂载在/boot目录下,其他硬盘未进行分区。系统利用Device mapper机制建立了一个卷组(volume group,VG),你可以把VG当做一个资源池来看待,最后在VG上面再创建逻辑卷(logical volume,LV)。若要将硬盘a的剩余空间、硬盘b和硬盘c都加入到VG中

2022-06-23 10:49:05 6010 2

转载 git rebase命令

以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!命令在另一个分支基础之上重新应用,用于把一个分支的修改合并到当前分支。使用语法Shell假设你现在基于远程分支”“,创建一个叫”“的分支。Shell结果如下所示 -现在我们在这个分支(mywork)做一些修改,然后生成两个提交(commit).Shell但是与此同时,有些人也在”“分支上做了一些修改并且做了提交了,这就意味着”“和”“这两个分支各自”前进”了,它们之间”分叉”了。在这里,你可以用

2022-06-21 10:19:20 2697

转载 git merge

假设现在只有一个默认的 master 分支,并提交了3次,B0、B1和B2都是提交对象。首先要清楚,每次产生的提交对象会包含一个指向上次提交对象(父对象)的指针,所以图中B0、B1和B2之间的箭头是指针指向父对象的意思,真正的提交顺序还是B0到B1再到B2。同时 master 指针指向最新的提交B2。另外Git中还有一个名为 HEAD 的特殊指针,它是一个指针,指向当前所在的本地分支(可以将 HEAD想象为当前分支的别名)。dev新分支现在新建一个分支并切换到新分支。它是下面两条命令的简写:

2022-06-20 17:47:55 461

原创 virsh创建/关闭/停止虚拟机常用的几条指令

virsh创建/关闭/停止虚拟机常用的几条指令

2022-06-10 17:20:46 2994

转载 虚机串口的配置

sss

2022-06-02 10:48:01 3146

原创 oslo: oslo_config组件解析 和代码中的应用

oslo: oslo_config组件解析OpenStack中大量使用了一些第三方组件,为了使一些基础组件的接口的统一及更友好的使用,Openstack利用oslo的项目统一了第三方组件的接口。如最常使用的oslo项目:oslo_config oslo_log oslo_messaging stevedoreoslo_configOpenStack中用于从配置文件及命令行解析配置参数的第三方库。在Openstack中配置文件相关的概念简要介绍如下:配置文件: INI风格的文件,key=

2022-05-23 17:08:00 738

转载 Attach Volume 操作(Part I) - 每天5分钟玩转 OpenStack(53)

Attach Volume 操作(Part I) - 每天5分钟玩转 OpenStack(53)上一节我们创建了 volume,本节讨论如何将 volume attach 到 Instance,今天是第一部分。Volume 的最主要用途是作为虚拟硬盘提供给 instance 使用。Volume 是通过 Attach 操作挂载到 instance 上的。本节我们就来详细讨论 Cinder 是如何实现 Attach 的。上一节我们成功创建了基于 LVM provider 的 v.

2022-05-20 10:39:24 203

原创 qemu使用

qemu使用本文目录前言: qemu-img基本命令 qemu-img使用回到目录前言:qemu-img是QEMU的磁盘管理工具,在qemu-kvm源码编译后就会默认编译好qemu-img这个二进制文件。qemu-img也是QEMU/KVM使用过程中一个比较重要的工具,本节对其用法和实践使用方法进行介绍。本文先介绍qemu-img的基本命令及语法,这个也可以通过qemu-img --help得到。然后简单介绍创建和使用kvm虚拟机镜像文件的一般过程。回到目录qemu-.

2022-05-18 18:13:10 4885

转载 不同虚拟化技术 virtio 之间的区别

目录概述I/O设备半虚拟化驱动(virtio)Guest of WindowsGuest of LinuxVirtio in Openstackvirtio_blk和virtio-scsivirtio-blk:virtio-scsi:概述IDE - Slow Write in the Guest SystemSCSI - Faster Write(as IDE) in Guest SystemVIRTIO - Fastest Write (mo...

2022-05-13 12:01:15 1538

转载 Attach Volume 操作(Part II) - 每天5分钟玩转 OpenStack(54)

Attach Volume 操作(Part II) - 每天5分钟玩转 OpenStack(54)上一节我们讨论了 attach volume 操作中 cinder-api 的工作,本节讨论 cinder-volume 和 nova-compute 如何将 volume attach 到 Instance。cinder-volume 初始化 volume 的连接cinder-volume 接收到 initialize_connection 消息后,会通过 tgt 创建 target,

2022-05-13 10:41:13 236

原创 openstack 相关操作详解代码流程

文章连接TechnologyNote的个人空间_哔哩哔哩_Bilibili

2022-05-13 10:31:48 106

转载 浅谈linux中的根文件系统(rootfs的原理和介绍)

linux中有一个让很多初学者都不是特别清楚的概念,叫做“根文件系统”。我接触linux前前后后也好几年了,但是对这个问题,至今也不是特别的清楚,至少没法给出一个很全面很到位的解释。于是,今天我们就来理一理这个话题。一、先交代一下文件系统在开始讨论根文件系统这个话题之前,我们必首先交代一下文件系统这个概念。毕竟,根文件系统只是文件系统中的一种比较特殊的形式而已。根据伟大的百度百科:文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结

2022-05-13 10:04:22 1584

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除