首页
友情链接
关于
Search
1
Docker 拉取镜像报错 “missing signature key” 解决办法
1,257 阅读
2
如何在CentOS 7中升级Linux内核
438 阅读
3
docker 常用命令
192 阅读
4
k8s 常用命令
190 阅读
5
Ubuntu 系统LVM 磁盘扩容
157 阅读
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
登录
/
注册
Search
标签搜索
Docker
shell脚本
Linux 系统管理
k8s
LVM
KVM
网络服务
Nginx
Ubuntu
内核升级
Linux用户管理
系统管理
MySQL
共享存储
Abbott
累计撰写
35
篇文章
累计收到
2
条评论
首页
栏目
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
页面
友情链接
关于
搜索到
35
篇与
的结果
2024-12-17
mycat 读写分离
环境介绍系统版本内核版本数据库版本读写分离组建java 版本Red Hat Enterprise Linux 8.8 (Ootpa)Linux 4.18.0-477.10.1.el8_8.x86_64mysql-8.4.3-linux-glibc2.28-x86_64Mycat-server-1.6java version "1.8.0_431"系统架构实现主从主从不在这叙述mysql> show replica status \G; *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event #复制IO的状态 Source_Host: 192.168.137.69 #源主机地址 Source_User: repl5 #连接源主机数据库的用户 Source_Port: 3306 Connect_Retry: 60 #连接重试时间 60 Source_Log_File: 3306bin.000007 #源日志文件名称 Read_Source_Log_Pos: 1955 #读取源日志的起始位置(偏移量) Relay_Log_File: mysql-slave-relay-bin.000002 #中继日志文件 Relay_Log_Pos: 786 #中继日志的位置(偏移量) Relay_Source_Log_File: 3306bin.000007 #从master同步中继日志文件的名称 Replica_IO_Running: Yes #复制节点的IO线程的状态:YES 表示成功;connection:正在连接 NO:连接不成功 Replica_SQL_Running: Yes #复制节点的SQL线程的状态 ====================== Replicate_Do_DB: #库复制 Replicate_Ignore_DB: ====================== ====================== Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: #表复制状态信息 Replicate_Wild_Ignore_Table: ====================== Last_Errno: 0 #最新/上一次的错误信息 Last_Error: Skip_Counter: 0 Exec_Source_Log_Pos: 1955 #执行源日志的偏移量 Relay_Log_Space: 1003 #中继日志的空间 Until_Condition: None #直到条件 Until_Log_File: Until_Log_Pos: 0 ===================== Source_SSL_Allowed: No 描述SSL验证 Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Source: 0 Source_SSL_Verify_Server_Cert: No ====================== Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Source_Server_Id: 19 #源server的ID Source_UUID: f7b42b90-b769-11ef-8b2f-525400d39ac1 #源UUID Source_Info_File: mysql.slave_master_info #源数据库文件描述信息 SQL_Delay: 0 #SQL线程的延迟时间 SQL_Remaining_Delay: NULL #SQL 剩余延迟时间 Replica_SQL_Running_State: Replica has read all relay log; waiting for more updates #SQL线程的状态 Source_Retry_Count: 10 #重试次数10 Source_Bind: Last_IO_Error_Timestamp: #最新/上一次IO错误的时间戳 Last_SQL_Error_Timestamp: #最新/上一次SQL错误的时间戳 Source_SSL_Crl: Source_SSL_Crlpath: Retrieved_Gtid_Set: f7b42b90-b769-11ef-8b2f-525400d39ac1:8-9 #已获取全局事务标识符集合 Executed_Gtid_Set: f7b42b90-b769-11ef-8b2f-525400d39ac1:1-9 #已执行全局事务标识符集合 Auto_Position: 1 #自动定位 Replicate_Rewrite_DB: Channel_Name: Source_TLS_Version: Source_public_key_path: Get_Source_public_key: 0 Network_Namespace:部署mycat节点一、获取软件包及解压wget https://github.com/MyCATApache/Mycat-download/blob/master/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/二、修改配置文件server.xml(保持原文件不动)schema.xml[root@mycat-server ~]# cat /usr/local/mycat/conf/schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"> <!-- auto sharding by id (long) --> <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /> <!-- global table is auto cloned to all defined data nodes ,so can join with any table whose sharding node is in the same data node --> <table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" /> <table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" /> <!-- random sharding using mod sharind rule --> <table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2,dn3" rule="mod-long" /> <!-- <table name="dual" primaryKey="ID" dataNode="dnx,dnoracle2" type="global" needAddLimit="false"/> <table name="worker" primaryKey="ID" dataNode="jdbc_dn1,jdbc_dn2,jdbc_dn3" rule="mod-long" /> --> <table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" /> <table name="customer" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile"> <childTable name="orders" primaryKey="ID" joinKey="customer_id" parentKey="id"> <childTable name="order_items" joinKey="order_id" parentKey="id" /> </childTable> <childTable name="customer_addr" primaryKey="ID" joinKey="customer_id" parentKey="id" /> </table> <!-- <table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate" /> --> </schema> <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743" /> --> <dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataNode name="dn2" dataHost="localhost1" database="db2" /> <dataNode name="dn3" dataHost="localhost1" database="db3" /> <!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" /> <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" /> <dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" /> <dataNode name="jdbc_dn3" dataHost="jdbchost" database="db3" /> --> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" dbType="mysql" dbDriver="jdbc"> <heartbeat>select user()</heartbeat> <writeHost host="192.168.137.69" url="jdbc:mysql://192.168.137.69:3306" user="mycat1" password="mycat@123"> <readHost host="192.168.137.61" url="jdbc:mysql://192.168.137.61:3306" user="mycat1" password="mycat@123" /> </writeHost> </dataHost> </mycat:schema>三、启动Mycat[root@mycat-server mycat]# bin/mycat start错误过程错误的原因:JDBC 驱动未正确配置Mycat 在执行 JDBC 操作时找不到合适的驱动程序。MySQL的JDBC驱动通常是com.mysql.cj.jdbc.Driver,但是 Mycat 可能没有正确加载该驱动。解决方法:1. 确保 JDBC 驱动在 Mycat 中正确配置:检查Mycat 配置文件 conf/mysql.properties 或其他相关的配置文件,确保 mysql.driver 参数正确指定为 MySQL 驱动:mysql.driver=com.mysql.cj.jdbc.Driver2. 确保 MySQL JDBC 驱动存在:确保 Mycat的lib/目录中包含 MySQL JDBC 驱动 mysql-connector-java-x.x.x.jar。如果没有,可以手动下载并将其放置到 lib/ 目录中。你可以从 MySQL 官方下载页面 下载适合的 JDBC 驱动,并将其放入 lib 目录。[root@mycat-server ~]# wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-j-8.4.0-1.el8.src.rpm [root@mycat-server ~]# rpm -ivh mysql-connector-j-8.4.0-1.el8.src.rpm [root@mycat-server ~]# cd rpmbuild/SOURCES/ [root@mycat-server SOURCES]# tar xf mysql-connector-j-8.4.0.tar.gz [root@mycat-server SOURCES]# cd mysql-connector-j-8.4.0 [root@mycat-server mysql-connector-j-8.4.0]# cp mysql-connector-j-8.4.0.jar /usr/local/mycat/lib/3.重新启动mycat[root@mycat-server mycat]# bin/mycat start切记一定:要观察日志
2024年12月17日
73 阅读
0 评论
0 点赞
2024-12-04
StarVCenter 构建私有云方案(小型)
StarVCenter 私有云部署 一套国产超融合云平台IaaS软件,StarVCenter还提供了超融合技术,将计算、存储和网络等资源整合到一个硬件节点中,形成一个完整的虚拟化基础设施。这种超融合架构可以提高资源利用率,减少部署和维护成本,同时还可以提供更高的性能和可靠性。官网文档:StarVCenter帮助文档StarVCenter的超融合技术包括以下特点:硬件节点整合:将计算、存储和网络等资源整合到一个硬件节点中,形成一个完整的虚拟化基础设施。简化部署:通过自动化部署和配置,简化了整个虚拟化环境的部署和维护。高性能和可靠性:通过整合计算、存储和网络等资源,提高了系统的性能和可靠性。灵活扩展:支持在线扩容和缩容,可以根据业务需要灵活调整资源。总之,StarVCenter的超融合技术可以帮助用户实现高效的虚拟化基础设施部署和管理,提高资源利用率和降低成本。StarVCenter追求极致好用,社区免费使用(不超过20台物理服务器)、社区免费技术支持、永久免费升级。除了基本的虚拟化管理功能,StarVCenter还提供了一些高级功能,如:多云管理:支持管理多个云平台,包括公有云和私有云,提供了跨云平台的资源管理和调度功能。容器管理:支持管理容器化应用,如Docker和Kubernetes,可以实现容器的部署、管理和监控。自动化运维:支持自动化运维功能,如自动化部署、配置管理、故障诊断和性能优化等,提高运维效率和减少人为错误。安全管理:提供了安全管理功能,包括访问控制、审计和日志管理等,保障虚拟化环境的安全性。[项目白皮书]:(http://www.starvcs.com/white_paper.pdf)
2024年12月04日
36 阅读
0 评论
1 点赞
2024-09-26
创建PV报错信息:device is partitioned
错误信息[y40@localhost ~]$ sudo vgextend rhel /dev/sdb /dev/sdc Cannot use /dev/sdb: device is partitioned Cannot use /dev/sdc: device is partitioned原因:是因为磁盘里的数据没有清楚赶紧导致错误信息解决方法:[y40@localhost ~]$ sudo wipefs --all --backup /dev/sdb /dev/sdb:8 个字节已擦除,位置偏移为 0x00000200 (gpt):45 46 49 20 50 41 52 54 /dev/sdb:8 个字节已擦除,位置偏移为 0x773c255e00 (gpt):45 46 49 20 50 41 52 54 /dev/sdb:2 个字节已擦除,位置偏移为 0x000001fe (PMBR):55 aa [y40@localhost ~]$ sudo wipefs --all --backup /dev/sdc /dev/sdc:8 个字节已擦除,位置偏移为 0x00000200 (gpt):45 46 49 20 50 41 52 54 /dev/sdc:8 个字节已擦除,位置偏移为 0x7470c05e00 (gpt):45 46 49 20 50 41 52 54 /dev/sdc:2 个字节已擦除,位置偏移为 0x000001fe (PMBR):55 aa /dev/sdc:将调用 ioctl 来重新读分区表:成功再次创建PV[y40@localhost ~]$ sudo pvcreate /dev/sdb /dev/sdc Physical volume "/dev/sdb" successfully created. Physical volume "/dev/sdc" successfully created.
2024年09月26日
91 阅读
0 评论
0 点赞
2024-09-21
Ubuntu 配置静态IP地址
一、修改配置/etc/netplan``root@y36-server-ubuntucom:~# cat /etc/netplan/50-cloud-init.yaml # This file is generated from information provided by the datasource. Changes # to it will not persist across an instance reboot. To disable cloud-init's # network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: enp7s0: dhcp4: true dhcp6: false version: 2 bridges: bri0: interfaces: [enp7s0] addresses: [192.168.107.67/24] gateway4: 192.168.107.254 routes: - to: default via: 192.168.99.1 nameservers: addresses: - 114.114.114.114 - 8.8.8.8 - 8.8.4.4 parameters: stp: true forward-delay: 4 dhcp4: no 切记:注意缩进二、测试文件配置文件是否有误root@y36-server-ubuntucom:~# sudo netplan try 三、应用配置文件root@y36-server-ubuntucom:~# sudo netplan apply
2024年09月21日
39 阅读
0 评论
0 点赞
2024-07-10
docker 拉去镜像失败Retrying in 1 second
错误信息:一直停留在等待或者重试的状态解决方案: 使用加速器(阿里加速器)1.登录阿里云官方网站注册属于自己的镜像加速器2.配置docker文件[root@web-server18-20 ~]# cat /etc/docker/daemon.json { "registry-mirrors": [ 隐藏内容,请前往内页查看详情 "] }3.重启docker及加载配置文件[root@web-server18-20 ~]# systemctl daemon-reload [root@web-server18-20 ~]# systemctl restart docker 4.垃取镜像测试[root@web-server18-20 ~]# docker pull nginx Using default tag: latest latest: Pulling from library/nginx a2abf6c4d29d: Extracting [=============================================> ] 28.84MB/31.36MB a9edb18cadd1: Download complete 589b7251471a: Download complete 186b1aaa4aa6: Download complete b4df32aa5a72: Waiting a0bcbecc962e: Waiting 至此垃取完成!!!!!!!
2024年07月10日
153 阅读
0 评论
0 点赞
2024-07-10
国内安装docker源失败
错误原因:是因为国内安全机构发现docker有些镜像涉及安全的问题,所以设置了网络那么我们应该怎么解决问题?解决方案:使用国内镜像源- 阿里源- [清华源]()- 华为源[root@web-server18-20 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo [root@web-server18-20 ~]# sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin Failed to set locale, defaulting to C.UTF-8 Updating Subscription Management repositories. Unable to read consumer identity This system is not registered with an entitlement server. You can use subscription-manager to register. Docker CE Stable - x86_64 139 kB/s | 66 kB 00:00 Last metadata expiration check: 0:00:01 ago on Wed Jul 10 15:23:43 2024. Dependencies resolved. ===================================================================================================================================================== Package Architecture Version Repository Size ===================================================================================================================================================== Installing: containerd.io x86_64 1.6.32-3.1.el8 docker-ce-stable 35 M docker-buildx-plugin x86_64 0.14.0-1.el8 docker-ce-stable 14 M docker-ce x86_64 3:26.1.3-1.el8 docker-ce-stable 27 M docker-ce-cli x86_64 1:26.1.3-1.el8 docker-ce-stable 7.8 M docker-compose-plugin x86_64 2.27.0-1.el8 docker-ce-stable 13 M
2024年07月10日
104 阅读
0 评论
0 点赞
2024-07-08
RedHat /CentOS 7 install NFS
NFS 代表网络文件系统,它可以帮助您在 Linux / Unix 系统之间共享文件和文件夹。NFS 使您能够在本地挂载远程共享NFS 的优点在 *nix 系统之间共享文件/文件夹允许在本地挂载远程文件系统可作为集中存储系统它可以用作VMware和其他虚拟化平台的存储域(数据存储)。允许应用程序与多个节点共享配置和数据文件。允许在共享中更新文件。配置 NFS 服务器安装 NFS 服务器使用 yum 命令为 NFS 服务器安装以下软件包。yum install -y nfs-utils-安装软件包后,启用并启动 NFS 服务。 systemctl start nfs-server rpcbind systemctl enable nfs-server rpcbind创建 NFS 共享现在,让我们创建一个要与 NFS 客户端共享的目录。在这里,我将在 / 分区中创建一个名为 nfs_vlome 的新目录。# mkdir /nfs_vlome允许 NFS 客户端读取和写入创建的目录。chmod 777 /nfs_vlome/我们必须修改 /etc/exports 文件以创建您想要共享的目录 /nfs_vlome 的条目# vim /etc/exports并添加此内容/nfs_vlome 192.168.212.42(rw,sync,no_root_squash)192.168.212.42: 客户端计算机的 IP 地址。我们也可以使用主机名而不是 IP 地址。还可以使用子网(如 192.168.100.0/24)定义客户端的范围。rw: 共享文件夹的可写权限sync:对相应文件系统的所有更改都会立即刷新到磁盘;正在等待相应的写入操作。no_root_squash:默认情况下,root 用户在客户端计算机上发出的任何文件请求都将被视为服务器上的 nobody 用户。(请求映射到哪个 UID 取决于服务器上用户“nobody”的 UID,而不是客户端。如果选择了 no_root_squash,则客户端计算机上的 root 用户对系统上的文件的访问级别将与服务器上的 root 用户相同。使用以下命令导出共享目录。exportfs -r配置 NFS 服务器后,我们需要在 NFS 客户端中挂载该共享目录。配置防火墙规则我们需要在 NFS 服务器上配置防火墙,以允许 NFS 客户端访问 NFS 共享。为此,请在 NFS 服务器上运行以下命令:firewall-cmd --permanent --add-service mountd firewall-cmd --permanent --add-service rpc-bind firewall-cmd --permanent --add-service nfs firewall-cmd --reload
2024年07月08日
98 阅读
0 评论
0 点赞
2024-07-05
Red Hat 8 源码构建mysql:8.0.35版
一、主机信息[root@bogon mysql]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.8 (Ootpa) [root@bogon mysql]# uname -r 4.18.0-477.10.1.el8_8.x86_64 [root@bogon mysql]# lscpu | grep '^CPU(s):' CPU(s): 2 [root@bogon mysql]# free -h total used free shared buff/cache available Mem: 3.6Gi 282Mi 1.3Gi 8.0Mi 2.0Gi 3.0Gi Swap: 3.9Gi 0B 3.9Gi二、下载源码包官方下载三、创建管理目录且解压[root@bogon mysql]# mkdir /usr/local/mysql8 [root@bogon ~]# tar xf mysql-boost-8.0.38.tar.gz -C /usr/local/mysql8/ [root@bogon ~]# cd /usr/local/mysql8/ [root@bogon mysql8]# ln -s mysql-8.0.38 mysql四、检查环境&编译安装4.1 安装需要软件包[root@bogon mysql8]# dnf -y install cmake make gcc gcc-c++ gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc openssl-devel ncurses-devel libtirpc-devel rpcgen [root@bogon ~]# wget https://dl.rockylinux.org/pub/rocky/8/PowerTools/x86_64/os/Packages/r/rpcgen-1.3.1-4.el8.x86_64.rpm [root@bogon ~]# dnf -y install rpcgen-1.3.1-4.el8.x86_64.rpm4.2 创建用户1.检查是否有mysql用户 [root@bogon mysql8]# id mysql uid=995(mysql) gid=992(mysql) groups=992(mysql) 2.创建用户 [root@bogon mysql8]# useradd -r -s /sbin/false mysql4.3 检查环境及指定参数[root@bogon mysql-8.0.38]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql8/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_SSL=system -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCOMPILATION_COMMENT="zsd edition" -DWITH_BOOST=/usr/local/mysql8/mysql-8.0.38/boost/ -DMYSQL_UNIX_ADDR=/usr/local/mysql8/3306/mysql.sock -DSYSCONFDIR=/usr/local/mysql8/data/3306 -DFORCE_INSOURCE_BUILD=1描述:1. `-DCMAKE_INSTALL_PREFIX=/usr/local/mysql8/`: 指定MySQL安装目录为`/usr/local/mysql8/`。这个目录将包含MySQL的所有组件,如二进制文件、 库和配置文件。 2. `-DDEFAULT_CHARSET=utf8`: 设定默认字符集为UTF-8。UTF-8是一种能够表示大多数文字的编码方式,适用于处理不同语言的数据。 3. `-DDEFAULT_COLLATION=utf8_general_ci`: 设定默认比较规则为`utf8_general_ci`。这是一个用于比较UTF-8字符串的规则,适用于大多数场景。 4. `-DENABLED_LOCAL_INFILE=ON`: 启用本地文件操作功能。这个选项允许MySQL从本地磁盘读取和写入数据。 5. `-DWITH_INNODB_MEMCACHED=ON`: 启用InnoDB存储引擎与Memcached集成。Memcached是一个高性能的内存对象缓存系统,可以提高MySQL的查询性能。 6. `-DWITH_SSL=system`: 使用系统提供的SSL库。这个选项允许MySQL使用安装在系统中的SSL库进行加密通信。 7. `-DWITH_INNOBASE_STORAGE_ENGINE=1`: 启用InnoDB存储引擎。InnoDB是MySQL默认的事务处理存储引擎,支持ACID特性和行级锁定。 8. `-DWITH_FEDERATED_STORAGE_ENGINE=1`: 启用联邦存储引擎。这个选项允许MySQL连接到其他MySQL服务器进行数据查询和操作。 9. `-DWITH_BLACKHOLE_STORAGE_ENGINE=1`: 启用黑洞存储引擎。这是一个虚拟存储引擎,不实际存储数据,可用于模拟其他存储引擎的行为。 10. `-DWITH_ARCHIVE_STORAGE_ENGINE=1`: 启用归档存储引擎。这个存储引擎用于保存不经常修改的数据,提高查询性能。 11. `-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1`: 禁用示例存储引擎。这个选项可以避免安装一个不常用的示例存储引擎。 12. `-DWITH_PERFSCHEMA_STORAGE_ENGINE=1`: 启用性能表存储引擎。这个存储引擎用于存储关于MySQL服务器的性能指标。 13. `-DCOMPILATION_COMMENT="zsd edition"`: 为编译过程添加注释。在这个例子中,注释设置为“zsd edition”,表示此版本是由"zsd"编译和配置的。 14. `-DWITH_BOOST=/usr/local/mysql8/mysql/boost/`: 启用Boost库并指定其安装路径。Boost是一个C++库集合,提供了各种功能和数据结构。MySQL使用Boost库进行一些特定的操作。 15. `-DMYSQL_UNIX_ADDR=/usr/local/mysql/3306/mysql.sock`: 指定MySQL Unix 地址为`/usr/local/mysql/3306/mysql.sock`。这个文件是用于Unix和 Linux系统上的MySQL通信使用的套接字文件,允许MySQL进程之间的通信。 16. `-DSYSCONFDIR=/usr/local/mysql/data/3306`: 指定MySQL的系统配置目录为`/usr/local/mysql/data/3306`。这个目录包含了MySQL服务器的数据文 件和配置文件。 17. `-DFORCE_INSOURCE_BUILD=1`: 强制使用内存源代码构建。这个选项可以确保在编译期间使用内存中的源代码,而不是从磁盘读取源代码。4.4 编译并安装[root@bogon mysql8]# make -j 2 #-j指定并发数,需要查看有多少个内核 [root@bogon mysql8]# make install 4.5 创建MySQL主配置文件[root@localhost ~]# cat /usr/local/mysql8/my.cnf [mysqld] user = mysql basedir=/usr/local/mysql8/ datadir=/usr/local/mysql8/data pid-file = /usr/local/mysql8/data/mysqld.pid socket = /usr/local/mysql8/data/mysqld.sock port = 3306 tmpdir = /tmp五、初始化数据[root@localhost mysql8]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql8/ --datadir=/usr/local/mysql8/data输出结果:六、启动数据库[root@localhost mysql8]# bin/mysqld_safe --defaults-file=/usr/local/mysql8/my.cnf --user=mysql描述1. --defaults-file # 指定mysql的主配置文件2. --user=mysql #指定管理数据库的用户隐藏内容,请前往内页查看详情七、测试数据库1.本地连接测试登录数据库[root@localhost mysql-8.0.38]# bin/mysql -uroot -S /usr/local/mysql8/data/mysqld.sock -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.38 Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> -S #指定mysql数据库的sock文件
2024年07月05日
97 阅读
0 评论
0 点赞
2024-06-27
如何在 Linux 上清除 RAM 内存缓存、缓冲区和交换空间
像任何其他操作系统一样,GNU/Linux 已经有效地实现了内存管理,甚至不止于此。但是,如果任何进程正在消耗您的内存并且您想要清除它,Linux 提供了一种刷新或清除 RAM 缓存的方法。在本文中,我们将探讨如何在 Linux 系统上清除 RAM 内存缓存、缓冲区和交换空间以提高整体性能。让我们探索 Linux 系统上的 RAM 内存缓存、缓冲区和交换空间。 RAM Memory Cache RAM内存缓存 RAM内存缓存是内核用来保存定期访问的数据的一种机制。虽然这提高了系统响应能力,但缓存过载可能会导致过时数据的保留,从而影响性能。 Buffer缓冲区 与缓存一样,缓冲区临时保存数据,但用途不同。缓冲区存储在 CPU 和硬盘等组件之间传输的数据,从而促进顺畅通信。但是,过多的缓冲数据会阻碍系统速度。Swap Space 交换空间 交换空间是硬盘上分配的区域,当物理 RAM 耗尽时充当虚拟内存。虽然它可以防止由于内存不足而导致系统崩溃,但如果过度使用,它可能会降低系统速度。清除 Linux 中的缓存、缓冲区和交换空间在某些情况下,您可能需要清除缓存、缓冲区或交换空间,如下所述。清除 PageCache要仅清除 PageCache,您可以使用以下命令,该命令将专门清除 PageCache,从而帮助释放内存资源。# sync; echo 1 > /proc/sys/vm/drop_caches要仅清除 dentries 和 inode,您可以使用以下命令,该命令将同步文件系统并清除 dentries 和 inode,通过释放缓存的目录和 inode 信息来提高系统性能。# sync; echo 2 > /proc/sys/vm/drop_caches清除 PageCache、dentry 和 Inode要清除 pagecache、dentries 和 inode,您可以使用以下命令,该命令将同步文件系统并清除 pagecache、dentries 和 inode,从而有助于释放内存并提高系统性能。# sync; echo 3 > /proc/sys/vm/drop_caches下面是对上述命令的每个部分的说明:sync:将刷新文件系统缓冲区。“;”:分号用于分隔一行上的多个命令。echo 3 > /proc/sys/vm/drop_caches: 命令用于删除页面缓存,这是最近访问的文件的临时存储区域。注意:drop_caches文件控制应清除哪种类型的缓存数据,其值如下:1 – 仅清除页面缓存。2 – 清除 dentries 和 inode。3 – 清除页面缓存、dentries 和 inode。正如内核文档中提到的,写入 drop_caches 将清理缓存而不会杀死任何应用程序/服务,命令 echo 正在执行写入文件的工作。如果必须清除磁盘缓存,则第一个命令在企业和生产环境中最安全,因为“...echo 1 > ….” 将仅清除 PageCache。不建议使用上面的第三个选项“...echo 3 >”,直到你知道自己在做什么,因为它会清除页面缓存、dentries 和 inode。如何在 Linux 中清除交换空间?要清除交换空间,可以使用带有 -a 选项的 swapoff 命令,这将禁用所有交换分区。# swapoff -a然后,通过运行以下命令将其转回,这将激活所有交换分区# swapon -a在 Linux 中释放缓冲区、缓存和交换是否可取?通常,在 Linux 中手动释放 Linux 内核可能使用的缓冲区和缓存不是一个好主意,Linux 内核旨在有效地管理这些资源,手动清除它们可能会破坏系统性能。但是,在极少数情况下,您需要清除缓冲区和缓存,例如,如果您遇到严重的内存压力并且无法通过其他方式释放内存。在这些情况下,您应该谨慎行事,并注意潜在的性能影响。同样,在正常情况下,在 Linux 中清除交换空间通常不是例行或可取的做法。自动执行内存优化要自动执行该过程并定期清除内存,您可以设置一个 cron 作业以按指定的时间间隔运行命令。打开 crontab 配置# crontab -e添加以下行以在每天午夜清除缓存、缓冲区和交换空间:0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches 0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches 0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches 0 0 * * * sudo swapoff -a && sudo swapon -a是否建议清除 Linux 生产服务器上的 RAM 缓存?考虑这样一种情况:您已安排一个脚本在每天凌晨 2 点清除 RAM 缓存。每天凌晨 2 点,执行脚本,刷新 RAM 缓存。然而,有一天,你的网站上有出乎意料的大量用户在线,对你的服务器资源有很大的需求。同时,计划的脚本运行并清除缓存中的所有内容。现在,所有用户都从磁盘检索数据,这可能会导致服务器崩溃和数据库损坏。因此,只有在必要时才清除 RAM 缓存,并注意您的操作。否则,您将面临成为 Cargo Cult 系统管理员的风险。结论高效的内存管理对于Linux系统的顺利运行至关重要。定期清除RAM内存缓存、缓冲区和交换空间可以显着提高系统性能。通过了解这些机制并使用提供的命令,您可以使 Linux 系统保持最佳运行状态。
2024年06月27日
88 阅读
0 评论
1 点赞
2024-06-16
Redhat 8 安装Nginx
nginx 部署yum|dnf 源部署nginx 依赖与第三方源 epel1、安装第三方源[root@localhost lvm-test]# yum -y install epel-release [root@localhost lvm-test]# ls /etc/yum.repos.d/ a.repo_bak bak CentOS-Base.repo epel.repo epel-testing.repo2、查找nignx服务[root@localhost lvm-test]# yum search nginx3、安装nginx[root@localhost lvm-test]# yum install nginx -y 4、启动nginx服务789版本systemclt[系统管理命令] start(开启)|stop(停止) | reload(重新加载)| enable (开机自启服务) | disable(开机不自启动) [服务的名称] [root@localhost lvm-test]# systemctl start nginx 6版本serivce [服务名称] start |stop5、添加防火墙规则7 8 firewalld#临时修改 [root@localhost lvm-test]# firewall-cmd --add-port=80/tcpiptables6、修改Selinux查看selinux状态[root@localhost lvm-test]# getenforce Enforcing #严格模式设置Selinux#临时修改 [root@localhost lvm-test]# setenforce 0 0#表示宽松模式 1#严谨模式Seliunx 工作流程图:7、测试使用搜索引擎浏览器在地址栏中:http://serverIP
2024年06月16日
126 阅读
0 评论
0 点赞
2024-06-16
初识Nginx
一、 什么是nginxnginx [engine x]是一个HTTP和反向代理服务器、邮件代理服务器和通用TCP/UDP代理服务器,最初由Igor Sysoev编写。长期以来,它一直在许多重负载的俄罗斯网站上运行,包括Yandex、Mail.Ru、VK和Rambler。据Netcraft称,nginx在2024年3月服务或代理了20.63%最繁忙的网站。以下是一些成功故事:Dropbox、Netflix、Wordpress.com、FastMail.FM。 我们在学习Nginx时也采用同样的方式,先来看看Nginx的竞争对手——Apache、Lighttpd、Tomcat、Jetty、IIS,它们都是Web服务器,或者叫做WWW(World Wide Web)服务器,相应地也都具备Web服务器的基本功能:基于REST架构风格 ,以统一资源描述符(Uniform Resource Identifier,URI)或者统一资源定位符(Uniform Resource Locator,URL)作为沟通依据,通过HTTP为浏览器等客户端程序提供各种网络服务。 Tomcat和Jetty面向Java语言,先天就是重量级的Web服务器,它的性能与Nginx没有可比性。apache的特点 Apache有许多优点,如稳定、开源、跨平台等,但它出现的时间太长了,在它兴起的年代,互联网的产业规模远远比不上今天,所以它被设计成了一个重量级的、不支持高并发的Web服务器。为什么选择Nginx更快这表现在两个方面:一方面,在正常情况下,单次请求会得到更快的响应;另一方面,在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求;高扩展性Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成;高可靠性高可靠性是我们选择Nginx的最基本条件,因为Nginx的可靠性是大家有目共睹的,很多家高流量网站都在核心服务器上大规模使用Nginx;低内存消耗一般情况下,10000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础;单机支持10万以上的并发连接这是一个非常重要的特性!随着互联网的迅猛发展和互联网用户数量的成倍增长,各大公司、网站都需要应付海量并发请求,一个能够在峰值期顶住10万以上并发请求的Server,热部署master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件;最自由的BSD许可协议这是Nginx可以快速发展的强大动力。BSD许可协议不只是允许用户免费使用Nginx,它还允许用户在自己的项目中直接使用或修改Nginx源码,然后发布;Apache拥有丰富的模块组件支持,稳定性强,BUG少,动态内容处理强。Nginx轻量级,占用资源少,负载均衡,高并发处理强,静态内容处理高效nginx 官网nginx 官网地址nginx 软件下载nginx 官方文档
2024年06月16日
61 阅读
0 评论
1 点赞
2024-05-24
LVM 逻辑卷管理
什么是逻辑卷LVM是Linux的逻辑卷管理器。它提供了对磁盘空间的管理,与基于主和逻辑分区的标准磁盘分区相比,磁盘空间更灵活,限制更少。LVM受到所有主要Linux发行版的支持,它甚至在Fedora和RHEL上默认使用在计算机存储中,逻辑卷管理或LVM提供了一种在大容量存储设备上分配空间的方法,这种方法比传统的分区方案更灵活地存储卷。特别是,卷管理器可以连接、条带在一起或以其他方式将分区(或一般块设备)组合成更大的虚拟分区,管理员可以调整大小或移动,可能不会中断系统使用。LVM是一个用于逻辑卷管理的工具,包括分配磁盘、条带、镜像和调整逻辑卷大小。使用LVM,硬盘驱动器或一组硬盘驱动器被分配给一个或多个物理卷。LVM物理卷可以放置在可能跨越两个或更多磁盘的其他块设备上.物理卷被合并成逻辑卷,但/boot分区除外。/boot分区不能在逻辑卷组上,因为引导加载程序无法读取它。如果根(/)分区位于逻辑卷上,请创建一个单独的/boot分区,该分区不是卷组的一部分。由于物理卷不能跨越多个驱动器,要跨越多个驱动器,请为每个驱动器创建一个或多个物理卷。用途LVM用于以下目的:创建多个物理卷或整个硬盘的单个逻辑卷(有点类似于RAID 0,但更类似于JBOD),允许动态重新调整卷大小。通过允许添加和更换磁盘,而不会停机或服务中断,结合热交换来管理大型硬盘更换。在小型系统(如桌面)上,LVM无需在安装时估计分区需要多大,而是允许文件系统根据需要轻松调整大小。通过拍摄逻辑卷的快照来执行一致的备份。用一个密码加密多个物理分区专业术语物理卷(Physical Volumes 缩写pv)这是LVM使用的物理存储。它可能是整个磁盘或现有分区。卷组(Volume Group vg)这是一个或多个物理卷的集合,它包含逻辑卷。逻辑卷(Logical Volume lv)这是LVM提供的空间,您可以将其用作分区来制作文件系统和存储文件。PE最小存储单元,默认大小(4MB)逻辑卷的管理在Linux系统中如果没有LVM的命令(最小化安装) [root@localhost ~]# dnf search lvm ======================================================= Name Matched: lvm ======================================================== llvm.i686 : The Low Level Virtual Machine llvm.x86_64 : The Low Level Virtual Machine lvm2.x86_64 : Userland logical volume management tools [root@localhost ~]# dnf -y install lvm2.x86_64一、 物理卷管理1.1 创建物理卷命令: pvcreate描述:初始化磁盘或分区供 LVM 使用。Ex:[root@localhost ~]# pvcreate /dev/vdb Wiping dos signature on /dev/vdb. Physical volume "/dev/vdb" successfully created.1.2 查看pv命令: pvdisplay描述: 显示所有的物理卷语法: pvdisplay [pv_name]Ex:[root@localhost ~]# pvdisplay "/dev/vdb" is a new physical volume of "20.00 GiB" --- NEW Physical volume --- PV Name /dev/vdb VG Name PV Size 20.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID jzEyr7-KheP-2PiZ-G1Pz-b1xq-cZcc-G4gzkb1.3 删除 PV命令:pvremove描述: 移除逻辑卷 Ex:[root@localhost ~]# pvremove -f /dev/vdb Labels on physical volume "/dev/vdb" successfully wiped 二、 卷组管理2.1 创建卷组命令:vgcreate语法:vgcreate 卷组名称 {物理卷1 物理卷2 物理卷n}Ex:[root@localhost ~]# vgcreate test_vg /dev/vdb Volume group "test_vg" successfully created2.2 显示卷组 命令: vgdisplayEx:[root@localhost ~]# vgdisplay --- Volume group --- VG Name test_vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size <20.00 GiB PE Size 4.00 MiB Total PE 5119 Alloc PE / Size 0 / 0 Free PE / Size 5119 / <20.00 GiB VG UUID 3WGvBc-dyNf-1eYn-gIsi-V2zO-OPND-8YlIBY2.3 删除卷组命令: vgremove Ex:[root@localhost ~]# vgremove test_vg Volume group "test_vg" successfully removed三、 逻辑卷管理3.1 创建逻辑卷命令: lvcreate语法: lvcreate [选项] 逻辑卷的名称 VG选项:-L #指定逻辑卷的大小,单位G M K -i #指定raid的级别,磁盘阵列-l #以逻辑扩展为单位指定新 LV 的大小-n #指定逻辑卷的名称Ex:[root@localhost ~]# lvcreate -L5G test_vg WARNING: ext4 signature detected on /dev/test_vg/lvol0 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/test_vg/lvol0. Logical volume "lvol0" created.3.2 查看逻辑卷[root@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/test_vg/lvol0 LV Name lvol0 VG Name test_vg LV UUID FZ32YS-sg2B-etWG-Y84C-hqyR-gaHG-9TCYnj LV Write Access read/write LV Creation host, time localhost, 2024-05-18 15:34:06 +0800 LV Status available # open 0 LV Size 5.00 GiB Current LE 1280 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 252:03.3 移除逻辑卷[root@localhost ~]# lvremove /dev/test_vg/lvol0 Do you really want to remove active logical volume test_vg/lvol0? [y/n]: y Logical volume "lvol0" successfully removed.3.4 扩容命令: lvextend描述:Add space to a logical volume 为逻辑卷添加空间Ex:[root@bogon ~]# lvextend -L 10G /dev/test_vg/test_lv Size of logical volume test_vg/test_lv changed from 5.00 GiB (1280 extents) to 10.00 GiB (2560 extents). Logical volume test_vg/test_lv successfully resized. [root@bogon ~]# lvdisplay --- Logical volume --- LV Path /dev/test_vg/test_lv LV Name test_lv VG Name test_vg LV UUID 9c1tLT-Dyul-qvWp-QdsN-pAYA-oyba-XeyKeW LV Write Access read/write LV Creation host, time localhost, 2024-05-18 15:46:39 +0800 LV Status available # open 1 LV Size 10.00 GiB Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 252:0 #刷新文件系统 - resize2fs 支持`ext2,3,4` 不支持xfs - xfs_growfs 支持xfs文件系统 [root@bogon ~]# xfs_growfs /dev/mapper/test_vg-test_lv meta-data=/dev/mapper/test_vg-test_lv isize=512 agcount=4, agsize=327680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=1310720, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 1310720 to 2621440 [root@bogon ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.8G 0 1.8G 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 1.8G 25M 1.8G 2% /run tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/vda3 17G 5.1G 12G 30% / /dev/vda2 2.0G 47M 2.0G 3% /home /dev/vda1 1014M 212M 803M 21% /boot /dev/mapper/test_vg-test_lv 10G 104M 9.9G 2% /test_lv tmpfs 367M 0 367M 0% /run/user/0四、 格式化逻辑卷(创建文件系统)[root@localhost ~]# mkfs.xfs /dev/test_vg/test_lv meta-data=/dev/test_vg/test_lv isize=512 agcount=4, agsize=327680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=1310720, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0五、 挂载使用5.1 临时挂载[root@localhost ~]# mkdir /lv_tst [root@localhost ~]# mount /dev/test_vg/test_lv /lv_tst/ [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.8G 0 1.8G 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 1.8G 17M 1.8G 1% /run tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/vda3 17G 5.1G 12G 30% / /dev/vda2 2.0G 47M 2.0G 3% /home /dev/vda1 1014M 212M 803M 21% /boot tmpfs 367M 0 367M 0% /run/user/0 /dev/sr0 12G 12G 0 100% /mnt /dev/mapper/test_vg-test_lv 5.0G 68M 5.0G 2% /lv_tst5.2 永久挂载实现永久挂载,需要修改主配置文件 /etc/fstab[root@localhost ~]# cat /etc/fstab UUID=787a972d-9811-42a3-b57b-8ecb567e23a4 / xfs defaults 0 0 UUID=2ccfb650-c2b0-4822-bea5-b8da75434b52 /boot xfs defaults 0 0 UUID=0541f6b0-a7f4-4566-8e63-30b87aa83a01 /home xfs defaults 0 0 # 挂载的目录 挂载点 文件系统 defaults 0 0 UUID=9c1tLT-Dyul-qvWp-QdsN-pAYA-oyba-XeyKeW /test_lv xfs defaults 0 0 或者使用文件的路径 /dev/test_vg/test_lv /test_lv xfs defaults 0 0 # 获取UUID [root@localhost ~]# blkid /dev/vdb: UUID="V6TrIv-Aip2-gyat-kxAa-6mK0-3zPL-zzRWEY" TYPE="LVM2_member" /dev/mapper/test_vg-test_lv: UUID="f4366c5b-231b-47d8-a39a-41fc0b55c8b9" BLOCK_SIZE="512" TYPE="xfs"切记:不能写错5.2.1 测试文件是否输入正确[root@localhost ~]# mount -a #读取/etc/fastab文件中的所有内容 [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/test_vg-test_lv 5.0G 68M 5.0G 2% /test_lv案例[root@localhost ~]# pvcreate /dev/vd{c..e} Physical volume "/dev/vdc" successfully created. Physical volume "/dev/vdd" successfully created. Physical volume "/dev/vde" successfully created. # 创建卷组 vgcreate my_test_vg /dev/vdc /dev/vdd #创建逻辑卷 lvcreate -L 10G -n test_lv_test my_test_vg #创建文件系统 mkfs.ext4 /dev/my_test_vg/test_lv_test #创建挂载点 mkdir /test_lv_1 #挂载测试 mount /dev/my_test_vg/test_lv_test /test_lv_1/ #扩容 lvextend -L 15G /dev/my_test_vg/test_lv_test #刷新文件系统 [root@localhost ~]# resize2fs /dev/my_test_vg/test_lv_test resize2fs 1.45.6 (20-Mar-2020) Filesystem at /dev/my_test_vg/test_lv_test is mounted on /test_lv_1; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 2 The filesystem on /dev/my_test_vg/test_lv_test is now 3932160 (4k) blocks long. #验证 [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/my_test_vg-test_lv_test 15G 24K 14G 1% /test_lv_1 # 添加物理卷到卷组中 [root@localhost ~]# vgextend my_test_vg /dev/vd vda vda1 vda2 vda3 vdb vdc vdd vde [root@localhost ~]# vgextend my_test_vg /dev/vde Volume group "my_test_vg" successfully extended [root@localhost ~]# vgdisplay my_test_vg --- Volume group --- VG Name my_test_vg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 3 Act PV 3 VG Size <29.99 GiB PE Size 4.00 MiB Total PE 7677 Alloc PE / Size 2560 / 10.00 GiB Free PE / Size 5117 / <19.99 GiB VG UUID a5wcDK-0edK-LzGd-BV5a-GaSk-wuk3-iVEfct
2024年05月24日
106 阅读
0 评论
0 点赞
2024-05-21
kvm 管理工具webvirtmgr
介绍WebVirtMgr是一个基于libvirt的Web界面,用于管理虚拟机。它允许您创建和配置新域,并调整域的资源分配。VNC查看器向来宾域显示一个完整的图形控制台。KVM是目前唯一支持的虚拟机管理程序。技术:应用程序逻辑是用Python和Django编写的。LIBVIRT Python绑定用于与底层虚拟机管理程序交互。安装1. 查看系统版本[root@web ~]# hostnamectl Static hostname: web.server.com Icon name: computer-desktop Chassis: desktop Machine ID: e57ef32020fa406d9bbee213aba339ed Boot ID: 5a70728f01fd4402a40d90d47e3f10df Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.114.2.el7.x86_64 Architecture: x86-642. 安装]# yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release ]# yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx gcc python-devel ]# pip3 install numpy 3.安装python要求并设置Django环境[root@web ~]# git clone https://github.com/retspen/webvirtmgr.git [root@web ~]# cd webvirtmgr [root@web webvirtmgr]# pip install -r requirements.txt4.同步用户数据[root@web webvirtmgr]# ./manage.py syncdb WARNING:root:No local_settings file found. Creating tables ... Creating table auth_permission Creating table auth_group_permissions Creating table auth_group Creating table auth_user_groups Creating table auth_user_user_permissions Creating table auth_user Creating table django_content_type Creating table django_session Creating table django_site Creating table servers_compute Creating table instance_instance Creating table create_flavor You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (leave blank to use 'root'): root Email address: Password: Password (again): Superuser created successfully. Installing custom SQL ... Installing indexes ... Installed 6 object(s) from 1 fixture(s)5.添加一个超级用户[root@web webvirtmgr]# ./manage.py createsuperuser Username: abbott Email address: Password: Password (again): Superuser created successfully.运行服务[root@web webvirtmgr]# ./manage.py runserver & 默认端口:"8000"6.配置Nginx作为web代理6.1 将项目文件拷贝到/var/www/在/etc/nginx/conf.d添加文件webvirtmgr.conf:[root@web webvirtmgr]# cp webvirtmgr /var/www/ -R6.2 配置nginx代理server { listen 80 default_server; server_name $hostname; #access_log /var/log/nginx/webvirtmgr_access_log; location /static/ { root /var/www/webvirtmgr/webvirtmgr; # or /srv instead of /var expires max; } location ~ .*\.(js|css)$ { proxy_pass http://127.0.0.1:8000; } location / { proxy_pass http://127.0.0.1:8000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Proto $scheme; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; client_max_body_size 1024M; # Set higher depending on your needs } }6.3 检查nginx配置语法是否正确[root@web nginx]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful6.4 启动nginx[root@web nginx]# systemctl start nginx [root@web nginx]# systemctl enable nginx最终实现
2024年05月21日
96 阅读
0 评论
0 点赞
2024-05-20
KVM
一、概述KVM(用于基于内核的虚拟机)是包含虚拟化扩展(英特尔VT或AMD-V)的x86硬件上的Linux的完整虚拟化解决方案。它由一个可加载的内核模块kvm.ko组成,该模块提供核心虚拟化基础设施和一个特定于处理器的模块kvm-intel.ko或kvm-amd.ko。使用KVM,可以运行多台运行未经修改的Linux或Windows映像的虚拟机。每个虚拟机都有私有虚拟化硬件:网卡、磁盘、图形适配器等。KVM是开源软件。KVM的内核组件包含在主线Linux中,截至2.6.20。从1.3开始,KVM的用户空间组件包含在主线QEMU中。KVM(Kernel-based Virtual Machine)是一个内核基于的虚拟化技术,它允许用户在Linux操作系统上创建、管理和运行虚拟机(VM)。KVM使用操作系统的内核功能来实现虚拟化,而不依赖于外部虚拟化软件或硬件。Machine)是一个内核基于的虚拟化技术,它允许用户在Linux操作系统上创建、管理和运行虚拟机(VM)。KVM使用操作系统的内核功能来实现虚拟化,而不依赖于外部虚拟化软件或硬件。KVM使用两个主要组件来实现虚拟化:QEMU(快速可扩展虚拟机):QEMU是一个开源的处理器虚拟化和模拟程序,它允许用户在不同的硬件和操作系统上运行不同类型的虚拟机。KVM使用QEMU来实现虚拟化的执行环境。Linux内核:Linux内核具有一些特性,例如对于虚拟化的支持(虚拟化扩展)和虚拟化功能(虚拟网络、块设备等),这些特性允许KVM实现高效且低延迟的虚拟化。使用KVM,用户可以在同一台物理机上创建多个虚拟机,每个虚拟机都可以运行自己独立的操作系统和应用程序。这种虚拟化技术提供了灵活性、资源分配控制和安全性安装KVM 检查CPU是否开启虚拟化检查内核版本:内核版本越新,虚拟化技术的支持越多。使用 uname -r 命令查看内核版本:uname -r检查硬件虚拟化支持:Intel 处理器:使用 lscpu 或 cpuinfo 命令查看 CPU 信息,查找包含 “vmx”、“vt-x”、“intel-vtd” 等关键词。例如:lscpu # 或者 cat /proc/cpuinfo | grep -i virtualizationAMD 处理器:使用 lscpu 或 cpuinfo 命令查看 CPU 信息,查找包含 “svm”、“amd-v” 等关键词。例如:lscpu # 或者 cat /proc/cpuinfo | grep -i virtualization验证是否支持虚拟化:在虚拟机管理器(如 VirtualBox、QEMU/KVM、Virtual Server 等)中,尝试创建一个新的虚拟机或检查已有虚拟机的性能和功能。这将告诉你系统是否支持虚拟化并运行虚拟机。安装KVM程序Rehat系列更新系统缓存并升级已有软件包:sudo yum update安装虚拟网卡驱动程序(如果需要):Intel 处理器:sudo yum install -y kmod-virtio virtio-pciAMD 处理器:sudo yum install -y kmod-vfio virtio-pci安装 QEMU/KVM 软件包:sudo yum install -y qemu-kvm qemu-img libvirt libvirt-daemon libvirt-client virt-manager启动和配置 libvirtd 服务(虚拟化管理服务):启动 libvirtd 服务:sudo systemctl start libvirtd使 libvirtd 在系统重新启动时自动开始:sudo systemctl enable libvirtd配置 firewalld(如果需要):启用虚拟网卡所需的防火墙规则:sudo firewall-cmd --permanent --add-port=16514/tcp sudo firewall-cmd --reload如果使用的是 iptables,可以在 /etc/sysconfig/network-scripts/ifcfg-eth0 文件中添加“ROUTE”和“DEFROUTE”行,例如:sudo echo 'ROUTE=default' >> /etc/sysconfig/network-scripts/ifcfg-eth0 sudo echo 'DEFROUTE=yes' >> /etc/sysconfig/network-scripts/ifcfg-eth0安装 virt-manager 并启动 virt-manager:virt-manager 是一个用于管理 KVM 虚拟机的图形界面工具。可以通过以下命令安装它,然后启动和配置:sudo yum install -y virt-manager打开 virt-manager,登录并检查 KVM 虚拟机是否可以正常运行。2.Ubuntu系列
2024年05月20日
77 阅读
0 评论
0 点赞
1
2
3