iNet

kubernetes云平台管理实战:分布式文件系统glusterfs(二十一)

痞子三分冷 提交于 2020-08-15 04:46:00
一、安装glusterfs 1、什么是glusterfs Glusterfs是一个开源分布式文件系统,具有强大的横向扩展能力,可支持数PB存储容量和数千客户端,通过网络互联成一个并行的网络文件系统。具有可扩展性、高性能、高可用性等特点 2、安装glusterfs 所有节点 yum install centos-release-gluster -y yum install install glusterfs-server -y systemctl start glusterd.service systemctl enable glusterd.service mkdir -p /gfs/test1 mkdir -p /gfs/test2 二、添加存储资源池 master节点 [root@master ~]# gluster pool list UUID Hostname State e23fd83e-ed78-424d-a20c-c1cec983973e localhost Connected [root@master ~]# gluster peer probe node1 peer probe: failed: Probe returned with Transport endpoint is not connected [root@master ~]# gluster peer

MySQL入门

淺唱寂寞╮ 提交于 2020-08-14 01:09:22
MySQL 入门 目录 MySQL 入门 SQL 基础使用 查询语言分类 DDL 语句 创建数据库 删除数据库 创建表 删除表 修改表 DML 语句 插入 更新记录 删除记录 DQL 语句 去重 条件查询 排序 限制 聚合 表连接 子查询 联合查询 DCL 语句 关于帮助文档的使用 按照层次查询 快速查阅 MySQL 数据类型 数值类型 整数 小数 位类型 日期时间类型 YEAR TIME DATE DATETIME TIMESTAMP 字符串类型 CHAR 和 VARCHAR 类型 BINARY 和 VARBINARY 类型 BLOB 类型 TEXT 类型 ENUM 类型 SET 类型 MySQL 运算符 算术运算符 比较运算符 逻辑运算符 位运算符 MySQL 常用函数 字符串函数 数值函数 日期和时间函数 流程函数 其他函数 SQL 基础使用 MySQL 是一种关系型数据库,说到关系,那么就离不开表与表之间的关系,而最能体现这种关系的其实就是我们接下来需要介绍的主角 SQL ,SQL 的全称是 Structure Query Language ,结构化的查询语言,它是一种针对表关联关系所设计的一门语言,也就是说,学好 MySQL,SQL 是基础和重中之重。SQL 不只是 MySQL 中特有的一门语言,大多数关系型数据库都支持这门语言。

MySQL入门

旧巷老猫 提交于 2020-08-14 00:53:03
MySQL 入门 目录 MySQL 入门 SQL 基础使用 查询语言分类 DDL 语句 创建数据库 删除数据库 创建表 删除表 修改表 DML 语句 插入 更新记录 删除记录 DQL 语句 去重 条件查询 排序 限制 聚合 表连接 子查询 联合查询 DCL 语句 关于帮助文档的使用 按照层次查询 快速查阅 MySQL 数据类型 数值类型 整数 小数 位类型 日期时间类型 YEAR TIME DATE DATETIME TIMESTAMP 字符串类型 CHAR 和 VARCHAR 类型 BINARY 和 VARBINARY 类型 BLOB 类型 TEXT 类型 ENUM 类型 SET 类型 MySQL 运算符 算术运算符 比较运算符 逻辑运算符 位运算符 MySQL 常用函数 字符串函数 数值函数 日期和时间函数 流程函数 其他函数 SQL 基础使用 MySQL 是一种关系型数据库,说到关系,那么就离不开表与表之间的关系,而最能体现这种关系的其实就是我们接下来需要介绍的主角 SQL ,SQL 的全称是 Structure Query Language ,结构化的查询语言,它是一种针对表关联关系所设计的一门语言,也就是说,学好 MySQL,SQL 是基础和重中之重。SQL 不只是 MySQL 中特有的一门语言,大多数关系型数据库都支持这门语言。

解Bug之路-Nginx 502 Bad Gateway

[亡魂溺海] 提交于 2020-08-13 20:09:10
解Bug之路-Nginx 502 Bad Gateway 前言 事实证明,读过Linux内核源码确实有很大的好处,尤其在处理问题的时刻。当你看到报错的那一瞬间,就能把现象/原因/以及解决方案一股脑的在脑中闪现。甚至一些边边角角的现象都能很快的反应过来是为何。笔者读过一些Linux TCP协议栈的源码,就在解决下面这个问题的时候有一种非常流畅的感觉。 Bug现场 首先,这个问题其实并不难解决,但是这个问题引发的现象倒是挺有意思。先描述一下现象吧, 笔者要对自研的dubbo协议隧道网关进行压测(这个网关的设计也挺有意思,准备放到后面的博客里面)。先看下压测的拓扑吧: 为了压测笔者gateway的单机性能,两端仅仅各保留一台网关,即gateway1和gateway2。压到一定程度就开始报错,导致压测停止。很自然的就想到,网关扛不住了。 网关的情况 去Gateway2的机器上看了一下,没有任何报错。而Gateway1则有大量的502报错。502是Bad Gateway,Nginx的经典报错,首先想到的就是Gateway2不堪重负被Nginx在Upstream中踢掉。 那么,就先看看Gateway2的负载情况把,查了下监控,发现Gateway2在4核8G的机器上只用了一个核,完全看不出来有瓶颈的样子,难道是IO有问题?看了下小的可怜的网卡流量打消了这个猜想。

跟高手学习LINUX笔记-28 --firewall防火墙

旧巷老猫 提交于 2020-08-13 03:14:45
第七章 firewall防火墙 本节所讲内容: 7.1、TCPWRAPS简介与实际应用 7.2、firewall防火墙简介 7.3、firewall防火墙实际应用 实验环境: 服务端:server IP:192.168.26.82 客户端:client IP:192.168.26.80 内 网:server IP:10.0.0.81 正文部分: 7.1、TCPWRAPS简介与实际应用 7.1.1、TCPWRAPS简介 DTCPWRAPS概述: 1)组成:由两部分控制文件组成 (1)/etc/hosts.allow (2)/etc/hots.deny 2)功能:对一些特定服务访问控制 主要格式如下: 特定服务名 : IP地址/掩码 (掩码是/255.255.255.0不能写成/24) 如: sshd : 192.168.26.0/255.255.255.0 sshd : ALL 匹配规则: /etc/hosts.allow优先级高,规则匹配成功则通过 hosts.allow规则如果不匹配,则检查跟hosts.deny规则是否匹配,如果匹配则禁止 如果两个文件规则都不匹配,则直接允许通过 实际举例说明: 要求:只允许192.168.26.80可以ssh连接192.168.26.82服务器 [root@node-12 ~]# tail -1 /etc/hosts.allow sshd :

Linux tcp/ip 源码分析

空扰寡人 提交于 2020-08-12 15:33:32
accept方法对应的内核源码为 // net/socket.c SYSCALL_DEFINE3 ( accept , int , fd , struct sockaddr __user * , upeer_sockaddr , int __user * , upeer_addrlen ) { return sys_accept4 ( fd , upeer_sockaddr , upeer_addrlen , 0 ) ; } 该方法调用了名为accept4的系统调用 // net/socket.c SYSCALL_DEFINE4 ( accept4 , int , fd , struct sockaddr __user * , upeer_sockaddr , int __user * , upeer_addrlen , int , flags ) { struct socket * sock , * newsock ; struct file * newfile ; ... sock = sockfd_lookup_light ( fd , & err , & fput_needed ) ; ... newsock = sock_alloc ( ) ; ... newsock - > type = sock - > type ; newsock - > ops = sock -

面试官问我Linux下常见网络命令

别说谁变了你拦得住时间么 提交于 2020-08-12 14:29:40
✨一起 学习、成长、温情的热爱生活✨ 前言 今天继续来讲面试,已经出了将近十个美团java一面真题系列文章了,今天来讲一讲Linux命令相关内容,在全球超级计算机TOP500强操作系统排行榜中,Linux的占比最近十几年长期保持在85%以上,且一直呈现快速上升趋势。根据2016年的排行榜, Linux的占比已经高达98.80%。其实在各种大、中小型企业的服务器应用领域,Linux系统的市场份额也越来越接近这个比例,这足以说明Linux的表现是多么出色。 所以面试的时候却经常会被问到,我们根据面经来进行补短板,查漏补缺。下面开始今天的干货内容吧,走起, 记得点赞,点击在看哦。 1.ping命令 ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。 用法 (1)命令格式 ping ( 选项)目的地址 目的地址指的是被测计算机的IP 地址、主机名或者是域名。ping 命令包含12 个参数,所有参数都可以通过执行ping来查看 (2)实例 ping www .baidu .com 注: Linux下的ping命令和Windows下的ping命令不同 ,需要Ctrl+C来终止 (3)选项 -d:使用Socket的SO_DEBUG功能; -c<完成次数>

老大让我整理下公司内部mysql使用规范,分享给大家

放肆的年华 提交于 2020-08-12 08:32:38
最近涉及数据库相关操作较多,公司现有规范也不是太全面,就根据网上各路大神的相关规范,整理了一些自用的规范用法,万望指正。 数据库环境 dev: 开发环境 开发可读写,可修改表结构。开发人员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事。 test: 测试环境 开发可读写,开发人员可以通过工具修改表结构。 online: 线上环境 开发人员不允许直接在线上环境进行数据库操作,如果需要操作必须找DBA进行操作并进行相应记录,禁止进行压力测试。 重点的问题,各个环境的mysql服务器对应的用户权限,一定要做到权限划分明确,有辨识度,能具体区分业务场景等。 命名规范 基本命名规则 使用有意义的英文词汇,词汇中间以下划线分隔。(不要用拼音) 只能使用英文字母,数字,下划线,并以英文字母开头。 库、表、字段全部采用小写,不要使用驼峰式命名。 避免用ORACLE、MySQL的保留字,如desc,关键字如index。 命名禁止超过32个字符,须见名之意,建议使用名词不是动词 数据库,数据表一律使用前缀 临时库、表名必须以tmp为前缀,并以日期为后缀 备份库、表必须以bak为前缀,并以日期为后缀 为什么库、表、字段全部采用小写? 在 MySQL 中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。 Windows下是不区分大小写的。

克隆CentOS7时出现的网络问题及解决方案(转)

别说谁变了你拦得住时间么 提交于 2020-08-12 06:56:22
1.克隆CentOS7 出现的网络问题 1.1. 现象: [root @localhost ~]# systemctl startnetwork.service Job for network.service failed because thecontrol process exited with error code. See "systemctl statusnetwork.service" and "journalctl -xe" for details. [root @localhost ~]# systemctl statusnetwork.service network.service - LSB: Bring up/down networking Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Fri 2017-09-22 16:54:29 CST;12s ago Docs: man:systemd-sysv-generator(8) Process: 2405 ExecStart=/etc/rc.d/init.d/network start (code=exited,status=1

jmeter与tcp和udp建立连接

橙三吉。 提交于 2020-08-12 03:00:21
1.jmeter 与tcp 建立连接 先启动一个tcp服务端 # -*- coding:utf-8 -*- #@Time : 2020/5/17 20:18 #@Author: 张君 #@File : server_test.py # encoding=utf-8 import socketserver import threading class MyTCPHandler(socketserver.BaseRequestHandler): def handle(self): while True: self.data = self.request.recv(1024).strip() cur_thread = threading.current_thread() print(cur_thread) if not self.data: print(u"客户端:%s 退出!" % self.client_address[0]) break print(u"%s 内容:%s" % (self.client_address[0], self.data.decode("utf-8"))) ## self.request.sendall(self.data.upper()+'\n'.encode("utf-8")) self.request.sendall(self.data.upper()