欢迎光临
我们一直在努力

OpenStack常用命令之nova

u22e阅读(341)

Nova命令常用

nova flavor-list 查看配置模板列表

nova image-list 查看镜像列表

nova secgroup-list 查看安全规则
nova boot –flavor m1.tiny –image cirros-0.3.4-x86_64 –nic net-id=DEMO_NET_ID –security-group default –key-name demo-key demo-instance1启动虚机

nova-manage service list nova服务列表,服务所在物理点和域,以及服务状态

nova list 列出虚机,在执行该命令前,得先source 帐户openrc文件

nova show uuid(虚机id) 可以查看该虚机的详细信息,如虚机名,镜像模板,启动时间等等。如果要查看所在物理点,需在执行该命令前,先source 管理员openrc文件

nova live-migration 热迁移
nova evacuate uuid 物理节点号 冷迁移虚机到新的物理点
nova start uuid 开机

nova stop uuid 关机

nova delete uuid 删除虚机

nova reset-state uuid 重置虚机状态

nova reboot –hard uuid 对虚机进行硬重启
nova reset-state –active uuid 将虚机状态重置为active,对于部分error虚机无法删除时,运行该命令再删除一般能将虚机删除

nova get-vnc-console demo-instance1 novncnn 获取到VNC的web登录地址,直接输入获取到的http地址到浏览器即可登录虚机

nova volume-list 查看volume列表

nova volume-attach demo-instance1 volume_id 将volume挂载到demo-instance1虚机

vCenter Server Appliance(VCSA )7.0 部署指南

u22e阅读(482)

1.下载VMware-VCSA-all-7.0.3-18700403.iso文件,用虚拟光驱挂载或者解压运行,本地系统以win10拟光驱挂载为例,运行vcsa-ui-installer/win32/installer.exe
2.选择“安装”,VCSA 7.0版本同时提供其他选项


3.提示安装分为两个阶段

4.勾选“我接受许可协议条款”

5.指定VCSA 7.0部署到ESXi主机

6.配置VCSA 7.0虚拟机名称以及root密码

7.选择部署大小

8.选择VCSA 7.0虚拟机存储

9.配置VCSA 7.0 虚拟机网络

10.确认第1阶段参数

11.完成第一阶段部署,开始第二阶段部署

12.开始第二阶段配置

13.配置NTP服务器

14..配置SSO参数

15.确认是否加入CEIP

16.确认参数

17.确定开始第二阶段部署

18.开始配置

19.部署时间取决于物理服务器性能

至此部署完成,输入网址访问即可

openstack导出虚拟机实例

u22e阅读(483)

进入openstack后台查看虚拟机的id,然后查询虚拟机宿主机实例名称
openstack server show d66c9bf6-8f68-4606-ab13-f0481c75a579

列出宿主机的所有实例
virsh list --all
查看虚拟机所在位置
virsh domblklist instance-00000237

最后一步导出虚拟机为qcow2格式,可以拷贝到其他机器进行导入
qemu-img convert -c -O qcow2 /var/lib/nova/instances/d66c9bf6-8f68-4606-ab13-f0481c75a579/disk test.qcow2 -p

lvm添加同名硬盘及硬盘修复挂载

u22e阅读(426)

在Linux下使用新硬盘安装系统,安装好以后再挂载原来的硬盘,分区格式全为系统默认分区,系统默认使用的
是lvm格式,并且默认的卷都是 VolGroup00

使用 pvs 查看显示如下:
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup00 lvm2 a- 136.62G 0
/dev/sdb2 VolGroup00 lvm2 a- 136.62G 0
发现可以正确认别到两个VG,但是同名,如何挂载呢?
解决办法是,将原来的VG更名,解决冲突即可挂载

重命名格式为:vgrename VolGroup00 VolGroup01 
此时会提示:
[root@localhost ~]# vgrename VolGroup00 VolGroup01
Found more than one VG called VolGroup00. Please supply VG uuid.
原因是存在两个 VolGroup00,修改的方法他已经提示了要指定 VG uuid即可

查看VG uuid的命令为:
[root@localhost ~]# vgs -v
Finding all volume groups
Finding volume group “VolGroup00”
Finding volume group “VolGroup00”
VG Attr Ext #PV #LV #SN VSize VFree VG UUID
VolGroup00 wz–n- 32.00M 1 2 0 136.62G 0 dcHa6G-abU2-Xfq8-EPBm-jBLj-sf18-O5uH0U
VolGroup00 wz–n- 32.00M 1 2 0 136.62G 0 OF8g7h-PQJB-9D9z-yPxn-1kfY-Advq-YbNHJ9

查到VG uuid以后,再次执行改名:
[root@localhost ~]# vgrename OF8g7h-PQJB-9D9z-yPxn-1kfY-Advq-YbNHJ9 VolGroup01
Volume group “VolGroup00” still has active LVs

修改成功以后,再执行:lvscan
[root@localhost ~]# lvscan
inactive ‘/dev/VolGroup01/LogVol00’ [130.84 GB] inherit
inactive ‘/dev/VolGroup01/LogVol01’ [5.78 GB] inherit
ACTIVE ‘/dev/VolGroup00/LogVol00’ [130.84 GB] inherit
ACTIVE ‘/dev/VolGroup00/LogVol01’ [5.78 GB] inherit
可以看到新修改的VolGroup01是inactive状态。
再使用vgchange 加载 VolGroup01
[root@localhost ~]# vgchange -ay /dev/VolGroup01 
2 logical volume(s) in volume group “VolGroup01” now active

然后mount  报如下错误
[root@localhost ~]# mount /dev/VolGroup01/root /mnt/old

mount /dev/VolGroup01/root on /mnt/old failed: Structure needs cleaning

此时修复磁盘

ext4文件系统,使用命令 fsck.ext4 /dev/VolGroup01/root 修复,
如果是xfs文件系统,使用命令 xfs_repair -L /dev/VolGroup01/root 修复,

修复完成在挂载就可以了

[root@localhost ~]# mount /dev/VolGroup01/root /mnt/old

 

 

虚拟机镜像之间转换qemu-img convert

u22e阅读(377)

虚拟机镜像之间转换qemu-img convert

qemu-img convert 可以支持一下格式qcow2,qed, raw,vdi,vhd,和vmdk之间的转换

qemu-img 转换:raw、qcow2、qed、vdi、vmdk、vhd

image format Argument to qemu-img
QCOW2 (KVM, Xen) qcow2
QED (KVM) qed
raw raw
VDI (VirtualBox) vdi
VHD (Hyper-V) vpc
VMDK (VMware) vmdk

镜像文件image.img转换为 qcow2 镜像文件

 qemu-img convert -f raw -O qcow2 image.img image.qcow2

镜像文件image.vmdk转换为 img 镜像文件

qemu-img convert -f vmdk -O raw image.vmdk image.img

镜像文件image.vmdk转换为 qcow2 镜像文件

qemu-img convert -f vmdk -O qcow2 image.vmdk image.qcow2

参考连接https://docs.openstack.org/image-guide/convert-images.html

Nginx 如何配置TCP代理转发

u22e阅读(687)

使用Nginx 新版的 stream方式,实现TCP/UDP代理转发。

在Nginx安装了 stream 模块后。

修改nginx.conf

在主配置文件下 nginx.conf 增加 stream配置

vim /etc/nginx/nginx.conf

stream {

log_format proxy ‘$remote_addr [$time_local] ‘
‘$protocol $status $bytes_sent $bytes_received ‘
‘$session_time “$upstream_addr” ‘
‘”$upstream_bytes_sent” “$upstream_bytes_received” “$upstream_connect_time”‘;

access_log /var/log/nginx/tcp-access.log proxy ;
open_log_file_cache off;

# 统一放置,方便管理
include /etc/nginx/tcp.d/*.conf;
}

增加stream配置

创建tcp配置文件夹,方便以后统一管理配置文件:

cd /etc/nginx/

mkdir tcp.d

创建配置文件

cd tcp.d

vim tcp1883.conf

upstream tcp1883 {
server 192.168.98.48:1883;
}
# 后端指向 server 的 1883 端口
server {
listen 1883;
proxy_pass tcp1883;
}

测试重启Nginx

nginx -t

nginx -s reload

 

Ubuntu20.04 应用设置开机自启动

u22e阅读(471)

打开vim /lib/systemd/system/rc-local.service添加如下信息

一般正常的启动文件主要分成三部分

[Unit] 段: 启动顺序与依赖关系
[Service] 段: 启动行为,如何启动,启动类型
[Install] 段: 定义如何安装这个配置文件,即怎样做到开机启动
可以看出,/etc/rc.local 的启动顺序是在网络后面,但是显然它少了 Install 段,也就没有定义如何做到开机启动,所以显然这样配置是无效的。 因此我们就需要在后面帮他加上 [Install] 段:

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

一般需要先修改rc-local.service的权限才可以进行编辑

sudo chmod 777 /lib/systemd/syste,/rc-local.service

查看系统中有无 /etc/rc.local 这个文件,没有则自己创建一个。

然后把你需要启动脚本写入 /etc/rc.local ,我们不妨写一些测试的脚本放在里面,以便验证脚本是否生效

#!/bin/sh

echo “看到这行字,说明添加自启动脚本成功。” > /usr/local/test.log

exit 0

rc.local加上权限

sudo chmod +x /etc/rc.local

做完这一步,还需要最后一步 前面我们说 systemd 默认读取 /etc/systemd/system 下的配置文件, 所以还需要在 /etc/systemd/system 目录下创建软链接

ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/

重启Ubuntu后,去 /usr/local 下看看有没有生成test.log这个文件以及这个文件的内容

如果在 /etc/rc.local 中添加的是 ./test.sh 这种类型的,要在末尾加上&,如下图, 不然重启ubuntu的时候会卡在启动界面进不去系统。

 

openstack修改虚拟机内存和cpu

u22e阅读(631)

openstack修改kvm虚拟机内存和cpu

  1. 查找修改主机的实例列表
    nova list|grep u22e

2.查看主机的详细信息

nova show 63caa607-ce65-44c4-950d-84e89a90546f

3.显示所有flavor列表

nova flavor-list

4.修改主机的flavor ID(配置8c-24g)

nova resize 63caa607-ce65-44c4-950d-84e89a90546f 24bdb7e2-c626-46e1-a44b-56996e6a34b5

5.重算并提交机器的配置

nova resize-confirm 63caa607-ce65-44c4-950d-84e89a90546f

Ubuntu20.04开机自启动脚本设置

u22e阅读(589)

1.执行 ls /lib/systemd/system 你可以看到有很多启动脚本,其中就有我们需要的 rc.local.service

2.打开脚本内容

# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.


# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
After=network.target


[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes

一般正常的启动文件主要分成三部分

[Unit] 段: 启动顺序与依赖关系
[Service] 段: 启动行为,如何启动,启动类型
[Install] 段: 定义如何安装这个配置文件,即怎样做到开机启动

可以看出,/etc/rc.local 的启动顺序是在网络后面,但是显然它少了 Install 段,也就没有定义如何做到开机启动,所以显然这样配置是无效的。 因此我们就需要在后面帮他加上 [Install] 段:

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

这里需要注意一下,ubuntu-18.04以后 默认是没有 /etc/rc.local 这个文件的,需要自己创建

sudo touch /etc/rc.local
然后把你需要启动脚本写入 /etc/rc.local ,我们不妨写一些测试的脚本放在里面,以便验证脚本是否生效.

#!/bin/sh

echo “看到这行字,说明添加自启动脚本成功。” > /usr/local/test.log
exit 0
注意:#!/bin/sh 这一行一定要加 一定要加 一定要加 !!!!!!!!!

如果不加会报错,类似下面这种

~$ sudo systemctl status rc-local.service
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/etc/systemd/system/rc-local.service; enabled; vendor preset:
Drop-In: /lib/systemd/system/rc-local.service.d
└─debian.conf
Active: inactive (dead)
Condition: start condition failed at Wed 2019-08-14 12:21:45 CST; 5min ago
└─ ConditionPathExists=/etc/rc.local #脚本文件位置 was not met

给rc.local加上权限

sudo chmod +x /etc/rc.local
做完这一步,还需要最后一步 前面我们说 systemd 默认读取 /etc/systemd/system 下的配置文件, 所以还需要在 /etc/systemd/system 目录下创建软链接

ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/

CPU 节能与修改

u22e阅读(655)

CPU 节能与修改
一、CPU节能概念
随着CPU的发展,Intel出现了EIST技术,它可以动态的调整CPU的频率。当CPU使用率地下或者接近0时候,能降低CPU频率并且降压,从而降低功耗和发热。当检测到CPU使用率增高,它会马上回到原始工作频率,但是你必须考虑CPU被唤醒的时间,并且确保它会再次100%运行。这一系列的过程通常被称为“C-states”或“C-modes”,它是从C0开始的。
随着C-states的不断增加,CPU睡眠模式就更深,即更多的电路和信号被关闭,并且CPU将需要更多时间返回到C0模式,即唤醒。
对于每个模式也有不同的名称与不同功耗的子模式,从而唤醒时间级别等。
而在一些case中,CPU节能会带一些不稳定的因素,如unstable issue或performance issue,所以我们可以通过系统层面来disable CPU节能。
二、常见的几种C-states
C0 :工作状态,CPU完全运行。
C1 :停止状态,主CPU停止内部时钟经由软件;总线接口单元和APIC保持全速运行。
C3 :深度睡眠,止所有CPU内部和外部时钟。
C6 : 深度功率下降, 将CPU内部电压降低到任何值,包括0V。


更多状态请查看下面链接:
https://www.dell.com/support/article/us/en/19/qna41893/what-is-c-state?lang=en
三、Linux 系统上查看CPU节能
1. Linux 下命令快速查看

从图可以看出当前超线程cpu NHz各有不同,说明都不是跑在C0模式下。
2. 使用i7z工具检查
它是Linux下查看C-state的小工具,使用简单,直接上传i7z_64bit文件到系统里,命令添加可执行权限,如:chmod +x i7z_64bit,然后直接执行 ./i7z_64bit,就能看到下面的信息。


从这个图我们可以看到目前所有核心都没有100%在C0的状态。
所有核心都运行C0模式下:
图中红框部分说明,所有核心都工作在C0模式下,没有降频的发生。
四、从系统层面禁止CPU节能
1. RHEL6.X的调整方法
RHEL6.X的设置相对比较简单,可直接在系统grub中添加:intel_idle.max_cstate=0和idle=poll这两个参数,如下图:


修改完成后保存退出,重启系统。
2. RHEL7.X的调整方法
1)修改配置文件添加“intel_idle.max_cstate=0 processor.max_cstate=1 intel_pstate=disable idle=poll”设置。
[root@localhost ~]# cat /etc/default/grub


2)编辑grub2文件。


3)重启系统
4)检查当前CPU MHz


3.Ubuntu的设置方法
修改方式与RHEL7一样,在kernel选项添加下面两个参数,具体加入位置请看图红框位置。
processor.max_cstate=1 intel_idle.max_cstate=0


然后运行grub-mkconfig -o /boot/grub/grub.cfg命令,重启机器。
五、总结
这里所使用的方法是从系统kernel层面设置参数关闭CPU节能模式,不管BIOS里的C1E与C States是否设置了Enable,CPU节能都会被disable。
此测试在RHEL6.x,CentOS 7.2/7.3,RHEL 7.2/7.3 都能正常关闭CPU节能,使CPU跑在C0模式下。