tongsiying

阅读|运动|自律

0%

BlockStorage-openstack

000-随便粘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1.sit环境:
控制节点:
10.243.72.1
10.243.72.2
10.243.72.3

史家豪(19042668) 2019-12-19 15:09:43
先用cinder show XXX 能看到挂载的虚机id ;XXX是卷uuid
再用openstack server show XXX,XXX虚机uuid

史家豪(19042668) 2019-12-19 15:09:53
多租户
史家豪(19042668) 2019-12-19 15:10:04
想看所有的得用nova list --all
不过虚机太多可能会出错

openstack server show 虚机id

2.cinder --os-volume-api-version 3.28 create --name SNBS-Boot-161.7 --image-id 84fbcff2-ca3d-4524-b80e-11025bd9d987  --volume-type snbs --lvm_instance_hostname xgto01n010244025044.sncloud.com 75
史家豪 2019-12-19 20:02:51
这个创建启动盘
史家豪 2019-12-19 20:03:01
指定节点创建启动卷
史家豪 2019-12-19 20:03:07
虚机不变
史家豪 2019-12-19 20:03:12
创建虚机命令不变

3.
---------------------------------iso镜像-----------------------------------------------
10.27.244.140/CentOS-7-x86_64-DVD-1611.iso
服务器上在这个目录/var/www/html/
浏览器上也能下~直接粘进去也行

----------------------------------qcow2镜像----------------------------------------------
ftp://10.102.141.120/image/


-------------------------------------------------------------------------------------
openstack+pcp+snbs:
1、pcp建虚机是串行的,每台之间有个5s钟的间隔
2、这个虚机挂了个数据盘 根据fiaas的逻辑 挂数据盘时 先要ping通虚机 只有虚机网络通了之后才挂数据盘,虚机网络通 需要经历虚机系统启动 中间还有个cloud-init读取配置时间(120秒)
3、PCP目前优先指的是SNBS容量不够的情况下,调用本地

001-openstack人员

1
2
3
4
5
6
7
8
9
10
11
12
1.cinder:玮哥
2.glance:乐乐
3.nova:文斌

有关启动卷\数据卷\扩容等等的 是玮哥
有关镜像分发等等的 乐乐
有关虚机创建\迁移等等的 是文斌

现在ip是10.244.30.129-253这些是可用的ip
10.244.33.1-10.244.33.250    10.244.34.1-10.244.34.250新分配的;网关分别是10.244.33.254/24 ;10.244.34.254/24

56节点/var/run/libvirt/qemu 这个目录下xml文件随便拿个

002-首先条件

1
2
3
4
5
6
7
8
1.进入openstack命令行首先条件
source openrc
注:其它命令必须在家目录下操作(切换到家目录:cd )

2.通过帮助信息,查看命令行参数信息
cinder help create

注:以下是基于snbs创建虚机的方法,如想创建基于计算节点本地的虚机可去除--tag snbs、--volume-type snbs等参数

003-上传镜像

1
bash -x /root/cp_image.sh -U "ftp://10.102.141.120" -P "/image/centos67/" -N "CentOS6U7_GLOBAL_64bit_75G_20190904_APP.qcow2" -I "CentOS6U7_GLOBAL_64bit_75G_20200414_APP" -R "OCATA" -Q "SNBS" -O "snpool001"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bash -x /root/cp_image-local.sh -U "ftp://10.102.141.120" -P "/image/centos67/" -N "CentOS6U7_GLOBAL_64bit_75G_20190904_APP.qcow2" -I "CentOS6U7" -R "OCATA" -Q "SNBS" -O "snpool001" 
史家豪 2020-04-14 14:21:16
史家豪
我把25.1上的cp_image脚本改了下 试试
史家豪 2020-04-14 14:21:29
史家豪
命令还是原来的命令 只是不走ftp
史家豪 2020-04-14 14:21:47
史家豪
先把镜像传到 /gluster_glance 这个目录下
史家豪 2020-04-14 14:22:33
史家豪
-N 参数换成要传镜像的名字
王星童 2020-04-14 14:23:02
王星童

bash -x /root/cp_image-local.sh -U "ftp://10.102.141.120" -P "/image/centos67/" -N "OSS_REDHAT_200316A202004011432.qcow2" -I "OSS_REDHAT_200316A202004011432" -R "OCATA" -Q "SNBS" -O "snpool001"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
一、上传基础镜像
1.上传基础镜像脚本见附件:cp_image.sh
使用方法:
(-U ftp的地址, -P 镜像在ftp上的路径, -N 镜像的名称    -I 镜像上传到glance名称(不要和已经上传过的镜像重名) -R openstack版本(可以选择JUNO、OCATA)  -Q 存储类型(SNBS、LOCALLVM))

bash -x /root/cp_image.sh -U "ftp://10.102.141.120" -P "/image/centos67/" -N "CentOS6U7_GLOBAL_64bit_75G_20190904_APP.qcow2" -I "CentOS6U7_GLOBAL_64bit_75G_20190904_APP" -R "OCATA" -Q "SNBS" -O "snpool001"

bash -x /opt/cp_image.sh -U "ftp://10.102.141.120" -P "/image/rhel63/20191115updatesalt/" -N "RHEL6U3_GLOBAL_64bit_75G_20191115_APP_O.qcow2" -I RHEL6U3_GLOBAL_64bit_75G_20191115_APP_O_SNBS -R "OCATA" -Q "SNBS" -O "snpool001"

-----------------------------------------------------------------------------------------
手动上传镜像:
1.上传qcow2格式的镜像
glance image-create --container-format bare --disk-format qcow2 --name=test111 --file=/root/cirros-0.4.0-x86_64-disk.qcow2 --tag snbs
disk-format参数的值与要上传镜像的格式一一对应

2.上传raw格式的镜像(下图的基础镜像id在后面创建虚机系统有用的到)
glance image-create --container-format bare --disk-format raw --name=test114 --file=/os_data/cirrostest.raw
glance image-create --container-format bare --disk-format raw --name=wxt001 --file=/os_data/CentOS7U3_beijing.raw --tag snbs

3.查询所有基础镜像信息
glance image-list
[root@xgto01n0102442501 ~]# glance image-list
+--------------------------------------+----------------------------------------------------------+
| ID | Name |
+--------------------------------------+----------------------------------------------------------+
| 0be63c96-3669-4d8e-bda5-fd26cd1e9cb7 | CentOS6U7_GLOBAL_64bit_75G_20190904_APP |
+--------------------------------------+----------------------------------------------------------+
ID名称也对应snbs上的卷名

4.查看某一个镜像的详细信息
glance image-show 镜像uuid
[root@xgto01n0102442501 ~]# glance image-show 0be63c96-3669-4d8e-bda5-fd26cd1e9cb7
+------------------+-------------------------------------------------+
| Property | Value |
+------------------+-------------------------------------------------+
| checksum | None |
| container_format | bare |
| created_at | 2020-03-19T06:17:35Z |
| direct_url | snbsfuse://0be63c96-3669-4d8e-bda5-fd26cd1e9cb7 |
| disk_format | raw |
| id | 0be63c96-3669-4d8e-bda5-fd26cd1e9cb7 |
| min_disk | 0 |
| min_ram | 0 |
| name | CentOS6U7_GLOBAL_64bit_75G_20190904_APP |
| owner | dcddd00bd4d74a7d99648a55f906738f |
| pool | snpool001 |
| protected | False |
| size | 80530636800 |
| status | active |
| tags | ["snbs"] |
| updated_at | 2020-03-19T06:17:36Z |
| virtual_size | None |
| visibility | shared |
+------------------+-------------------------------------------------+

5.删除镜像
glance image-delete 镜像uuid
[root@xgto01n0102442501 ~]# glance image-delete 0be63c96-3669-4d8e-bda5-fd26cd1e9cb7

004-独立克隆

1
2
3
4
5
6
7
8
9
【002、中的基础镜像实际卷名创建特殊的独立克隆(也叫镜像卷),然后在独立克隆上创建链接克隆】
1.创建镜像卷(特殊的独立克隆)
[root@host102442554 snbs]# curl -X PUT "http://10.238.161.6:8686/region/pool/vol/fullclone?volname=0be63c96-3669-4d8e-bda5-fd26cd1e9cb7"
{"newname":"0be63c96-3669-4d8e-bda5-fd26cd1e9cb7-1-f"}
0be63c96-3669-4d8e-bda5-fd26cd1e9cb7:基础镜像卷名

2.查询全量克隆
[root@host102442554 snbs]# curl -X GET "http://10.238.161.6:8686/region/pool/vol/snapshot?volname=0be63c96-3669-4d8e-bda5-fd26cd1e9cb7&newname=0be63c96-3669-4d8e-bda5-fd26cd1e9cb7-1-f&type=fullclone"
{"result":"55/161"}

005-创建启动卷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
1.创建启动卷,镜像的格式必须是raw格式,创建的启动卷才能正常的启动虚拟机
【链接克隆卷】
cinder create --name boot1 --image-id 2a39804d-b6b9-4bac-9200-ee50073b3890 --volume-type snbs 75
或者
指定计算节点(issci服务端和客户端在同一个节点):
cinder --os-volume-api-version 3.28 create --name SNBS-Boot-161.7 --image-id 84fbcff2-ca3d-4524-b80e-11025bd9d987  --volume-type snbs --lvm_instance_hostname xgto01n010244025044.sncloud.com 75

--image-id:镜像id,2a39804d-b6b9-4bac-9200-ee50073b3890 可以通过:glance image-list查询
--volume-type:snbs(基于snbs创建的),不填默认走lvm(计算节点本地)
返回:启动卷id,启动虚机使用

2.查看所有创建的启动卷
cinder list
[root@xgto01n0102442501 ~]# cinder list
+--------------------------------------+--------+-------------------+------+-------------+----------+--------------------------------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+--------+-------------------+------+-------------+----------+--------------------------------------+
| 024bfe5a-58b5-4e24-94c7-749a5d182048 | in-use | SNBS-Boot-162.137 | 75 | snbs | true | 76f5737c-98e1-49b1-9406-c3118c69cd0a |
| 02683b2c-7fe7-4a39-9973-7e9ae50d59f3 | in-use | SNBS-Boot-162.58 | 75 | snbs | true | 1bb4f3d1-1f2a-4531-a2c9-16e5ac96f897 |
| 02ad0e1c-6f05-429f-a5d7-0000ccdc6974 | in-use | SNBS-Boot-162.111 | 75 | snbs | true | 244da327-fe85-4dd7-9c2c-5cc9fd6ef3d5 |

返回:
ID:对应snbs上实际的卷名,也是虚机启动读写的卷
Attached to :是虚机id,下面nova list命令可以查询,不启动虚机该值为空

3、从启动卷启动虚拟机
nova boot --flavor=3ba9daaa-d03b-419f-a356-d4a7356ffd65 --boot-volume=b7707b7c-d4a2-45da-956b-12425574363e --nic net-id=6cfc5f5d-e911-4d06-96f5-fd4f96e8419b,v4-fixed-ip=10.244.30.141 --user-data=/opt/user-141.txt --config-drive true --availability-zone=nova:xgto01n0102442548.sncloud.com oss141_instance
具体参数查询文章最后附录;
--boot-volume参数的值:启动卷id:cinderlist可以查询

4.查看虚机启动情况
nova list或者openstack server list
+--------------------------------------+-------------------+--------+------------+-------------+-------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+-------------------+--------+------------+-------------+-------------------------+
| b60fb66c-14a0-4de9-af7f-7f40eb254161 | SNBS-Boot-161.100 | ACTIVE | - | Running | SNBS_161=10.238.161.100 |
| 22f9d10b-6954-4df7-863d-250bf1c764de | SNBS-Boot-161.101 | ACTIVE | - | Running | SNBS_161=10.238.161.101 |
| 9d884ddb-1391-4a40-a9a0-a95b68e6f53f | SNBS-Boot-161.102 | ACTIVE | - | Running | SNBS_161=10.238.161.102 |
| 6bb9d5f6-e3ac-4631-bc76-05e03fa13873 | SNBS-Boot-161.103 | ACTIVE | - | Running | SNBS_161=10.238.161.103 |

返回:
ID:虚机id;对应cinder list中的Attached to

006-创建数据盘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
三、虚拟机挂载数据盘(数据盘也是基于snbs)
1.创建数据卷,单位(GB)
cinder create --name=data161-201b 100 --volume-type snbs
100:数据盘大小
返回:数据卷id

2.查看数据卷
cinder list --all

3.数据卷加载到虚机
nova volume-attach 虚机id 数据卷id
nova volume-attach f32060f4-a447-4212-a12c-93afe743138b dc36525b-4190-4c26-af5b-06883f3a2e9b

libvirt底层机制:虚机xml里配的disk为network 标明了iscsi lun地址 libvirt自动连接
连接成功 模拟到虚机里

4.登录到虚机上看下lsblk:

5.从虚机删数据盘
nova volume-detach 虚机id 数据盘id

6.删除数据卷
cinder delete 数据盘id

7.获取vnc地址
nova get-vnc-console a58b4e26-7c88-407c-8552-85e4e1f0855b novnc
a58b4e26-7c88-407c-8552-85e4e1f0855b:虚机id(nova list)

9.浏览器打开http://10.244.25.100:6080/vnc_auto.html?token=dab6e3a1-ddef-4b48-8588-51ba18651188

007-其它命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
其它命令:
1.nova虚机相关
nova list
nova reset-state 虚机id
nova reboot 虚机id
nova stop 虚机id
nova start 虚机id
nova get-vnc-console a58b4e26-7c88-407c-8552-85e4e1f0855b novnc

2.删除启动卷、数据卷
nova volume-attach 虚机id 数据卷id
nova volume-detach 虚机id 数据卷id
cinder create --name=data161-201b 100 --volume-type snbs
cinder delete 卷id
nova show 虚机uuid【OS-EXT-STS:vm_state 状态需要为active】
nova show 52421068-1bea-4c55-8336-c8f449a694a3

3.查看某个镜像的某些卷:(计算节点)
virsh list
virsh vncdisplay instance-000054ea
virsh domblklist instance-000054ea

[root@xgto01n010244025044 qemu]# virsh list
Id Name State
----------------------------------------------------
6908 instance-000012ff running

[root@xgto01n010244025044 qemu]# virsh vncdisplay instance-000012ff
10.244.25.44:0

[root@xgto01n010244025044 qemu]# virsh domblklist instance-000012ff
Target Source
------------------------------------------------
vda iqn.2019-01.com.suning:storage.snbs.ff400839-ed5b-4921-a9f7-df84b88494d0/1
vdb /os_instance/b60fb66c-14a0-4de9-af7f-7f40eb254161/disk.config

4.场景:将某个虚机的盘挂到另外一个虚机上
步骤就是先在a主机上执行nova volume-detach 
nova volume-detach 5429088f-99f9-48b2-b849-bb9187b7960a 72cdd842-e0e1-4a58-b73e-93ca708ff8ba 

再在b主机上执行nova volume-attach 
nova volume-attach 5429088f-99f9-48b2-b849-bb9187b7960a 72cdd842-e0e1-4a58-b73e-93ca708ff8ba
nova reset-state 4117941d-1709-4e7b-8a15-6805e113be8b --active
nova stop
nova start

008-附录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
附录:
1.从启动卷启动虚拟机各参数详解
nova boot --flavor=3ba9daaa-d03b-419f-a356-d4a7356ffd65 --boot-volume=b7707b7c-d4a2-45da-956b-12425574363e --nic net-id=6cfc5f5d-e911-4d06-96f5-fd4f96e8419b,v4-fixed-ip=10.244.30.141 --user-data=/opt/user-141.txt --config-drive true --availability-zone=nova:xgto01n0102442548.sncloud.com oss141_instance
参数:
--flavor=3ba9daaa-d03b-419f-a356-d4a7356ffd65 #参数的值,通过命令行nova flavor-list,选择一个合适的flavor【虚机配置】

--nic net-id=6cfc5f5d-e911-4d06-96f5-fd4f96e8419b, #参数的值,通过命令行neutron net-list,选择一个可用的network

v4-fixed-ip=10.243.0.1,#该ip必须和/opt/user-data.txt(或者其他目录)文件中一致


--config-drive true #
--availability-zone=nova:xgto01n0102442548.sncloud.com oss141_instance #--availability-zone参数的值,通过命令行nova service-list,选择一个可用的nova-compute服务节点

2.定制flavor参数
下面是2c4g,系统盘30G的
nova flavor-create 2c_4g_30g auto 4096 30 2


3.注入固定ip的userdate文件内容,redhat和centos是一样的
[root@xzto01n010027244129 ~]# cat user-data.txt
#cloud-config
runcmd:
- echo DEVICE=eth0 > /etc/sysconfig/network-scripts/ifcfg-eth0
- echo BOOTPROTO=static >> /etc/sysconfig/network-scripts/ifcfg-eth0
- echo ONBOOT=yes >> /etc/sysconfig/network-scripts/ifcfg-eth0
- echo USERCTL=no >> /etc/sysconfig/network-scripts/ifcfg-eth0
- echo IPADDR=10.1.0.125 >> /etc/sysconfig/network-scripts/ifcfg-eth0
- echo NETMASK=255.255.255.0 >> /etc/sysconfig/network-scripts/ifcfg-eth0
- echo GATEWAY=10.1.0.1 >> /etc/sysconfig/network-scripts/ifcfg-eth0
- [ cloud-init-per, once, restart_netconfig, service, network, restart ]
主要修改标红的三项

009-环境清理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
【脚本清理openstack环境:】
删磁盘和删虚机的时候需要注意,先执行卸载磁盘的命令,然后在删除磁盘和虚机,删除磁盘和虚机,不用注意顺序了
删除磁盘
for i in `cinder list --all-tenants |awk '{print $2}' |grep -v 'ID'|grep -v '^$'`;do cinder delete $i;done
删除虚机
for i in `nova list --all-tenants |awk '{print $2}' |grep -v 'ID'|grep -v '^$'`;do nova delete $i;done
删除port
for i in `neutron port-list |awk '{print $2}' |grep -v 'id'|grep -v '^$'` ;do neutron port-delete $i;done
删除镜像
for i in `glance image-list | awk '{print $2}' |grep -v 'ID'|grep -v '^$'`;do glance image-delete $i;done
删除subnet
for i in `neutron subnet-list | awk '{print $2}' |grep -v 'id'|grep -v '^$'`;do neutron subnet-delete $i;done
删除net
for i in `neutron net-list |awk '{print $2}' |grep -v 'id'|grep -v '^$'`;do neutron net-delete $i;done
删除flavor
for i in `nova flavor-list | awk '{print $2}' |grep -v 'ID'|grep -v '^$'`;do nova flavor-delete $i;done


卸载磁盘
for i in `cinder list --all-tenants |awk '{print $2}' |grep -v 'ID'|grep -v '^$'`;
do
  j=`cinder list --all |grep $i | awk '{print $16}' |grep -v 'Attached'|grep -v '^$'`
  nova volume-detach $j $i
done

010-虚机快照、扩容、疏散

快照

1
2
3
4
5
快照:cinder snapshot-create --force true --name XXX --description XXX  volumeUUID 
当卷处于挂载状态时 进行快照 需要添加--force参数
列快照:cinder snapshot-list
删除快照:cinder snapshot-delete
重置:cinder snapshot-reset-state --state available 11664a6a-b42c-4078-abd0-f8433c74d166

扩容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
扩容:cinder extend volumeUUID(卷id)  newSize 
该命令不区分是否处于挂载状态【非挂载状态下 就是冷的;挂载状态下 就是热的】
如果已经挂载但没有做文件系统那可以直接扩容;如果已经挂载而且做了文件系统可以直接扩容,还需在虚机内部执行resize2fs
【redhat6.3及一下版本不管是否挂载都不支持自动resize2fs】

冷扩容:
1.如果已经mount 需要先umount
2.nova volume-detach卸载
3.cinder extend
4.nova volume-attach挂载
5.mount
6.resize2fs

热扩容:
1.cinder extend
2.resize2fs
冷热的区别就是需不需要虚机内部umount 外部detach attach

迁移

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
1.理论上都是多台设备同时 但根据测试现象 热迁移在libvirt层是一台一台迁的 冷迁移和虚机扩容可以多台同时迁
2.根据前期测试数据冷迁一台虚机好像2min吧,批量的话得写专门的工具 多线程任务同时跑 单线程的话 是同步的
现在这个时效要比之前本地虚机好些 本地虚机冷迁少的得几十分钟 多的话 五六个小时

冷迁:
nova migrate vmUUID hostName
其中hostName可通过nova hypervisor-list查看;
虚机状态变为VERIFY_RESIZE 执行:nova resize-confirm VMUUID
什么情况下会导致VERIFY_RESIZE?
这个是冷迁过程的中间状态,虚机已经迁移到目标节点后 会出现这个状态,confirm操作是对源节点一些遗留数据进行清理

热迁:
nova live-migration vmUUID hostName
其中hostName可通过nova hypervisor-list查看


[root@snbs-boot-161 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 75G 0 disk
├─vda1 252:1 0 200M 0 part /boot
└─vda2 252:2 0 74.8G 0 part
├─systemvg-swaplv (dm-0) 253:0 0 10G 0 lvm [SWAP]
├─systemvg-rootlv (dm-1) 253:1 0 8G 0 lvm /
├─systemvg-homelv (dm-2) 253:2 0 2G 0 lvm /home
├─systemvg-varlv (dm-3) 253:3 0 6G 0 lvm /var
├─systemvg-tmplv (dm-4) 253:4 0 2G 0 lvm /tmp
├─systemvg-optlv (dm-5) 253:5 0 30G 0 lvm /opt
└─systemvg-usrlv (dm-6) 253:6 0 10G 0 lvm /usr
vdb 252:16 0 64M 0 disk
vdb是user data注入数据
之前user data是以iso格式挂载到cdrom 这种方式下 libvirt不支持热迁

热迁移有几十毫秒的中断;
往磁盘的读写 基本都是先到OS page cache 然后再由OS自身的IO调度完成具体的IO落盘 热迁在libvirt层通过post-copy算法完成虚机内存迁移 所以中断时间内相关数据一直在内存 迁移完毕后再由OS调度进行落盘,具体的细节可以找谢老大进行印证

刚才热迁就是失败的原因是:
热迁时候需要通过主机名建立libvirt层连接而25.1(控制节点)这个集群没有dns服务,计算节点间没法通过主机名通信 我已经把4448的主机名互写到对方hosts里了

1.每台计算节点占用的资源都比较多,迁移的时候资源判断没通过,没选到有效的节点,需要在热迁命令后面加个force参数
nova live-migration a0d8cbe7-07a4-4691-bb0b-8dd5b85d32ef xgto01n010244025056.sncloud.com --force
--force的意思是跳过nova scheduler组件的节点筛选
2.44 48 55 56四台计算节点的libvirt配置有问题没开启热迁配置
原因是 25.1压测环境的部署脚本不是最新的 这四台计算节点的libvirt配置我已经修改完了

疏散

1
2
3
4
5
6
7
8
9
10
11
12
13
14
疏散:
nova host-evacuate --target_host newHostname oldHostname
疏散功能用于计算节点宕机后将源节点的所有虚机疏散到目标节点
【newHostname是目标节点 oldHostname是宕机节点】
新节点会再次add lun

【nova service-list
44节点对应的compute服务状态为down的时候再操作疏散命令】

【不加--force可能会走调度,意思不一定全部迁移到目标节点,可能迁移到其他节点,--force就只会迁移到指定节点】

这个版本要保证 vm volume target在同一节点,所以迁移后要验证 vm volume target是否还在同一节点,源节点target是否删除

宕机恢复就是疏散,pcp那边做这个功能,不单单要调这个接口,还要有计算节点宕机检测支持,宕机检测要在上层监控层面做不会死openstack做。

011-问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
问题解决:
1.控制lun加到某一个计算节点
方法:停掉其他三个节点的nova-compute、cinder-volume服务
停volume的
systemctl stop openstack-cinder-volume.service
停compute的
systemctl stop openstack-nova-compute.service

2.问题:| e737244d-adc6-4e37-b808-53c7b9ce2984 | snbs162_88_instance | SHUTOFF | powering-on | Shutdown | SNBS_162=10.238.162.88 |
解决:
nova reset-state 虚机id --active
nova reset-state e737244d-adc6-4e37-b808-53c7b9ce2984 --active
注:
shutdown的状态powering on ,active的电源状态为powering off
shutdow:powering-on 数据整理
active:powering-off 数据整理

3.问题:cinder删除不掉
原因:计算节点时间不同步
解决:计算节点执行
systemctl restart chronyd
systemctl restart openstack-nova-compute

4.inuse状态不让删除:(使inuse状态变成available)
cinder reset-state --state available --attach-status detached 11664a6a-b42c-4078-abd0-f8433c74d166

5.停掉其他三个节点的nova-compute cinder-volume服务
史家豪 2019-09-03 17:46:11
systemctl stop openstack-cinder-volume.service
史家豪 2019-09-03 17:46:18
systemctl stop openstack-nova-compute.service
史家豪 2019-09-03 17:46:25
上面那个是停volume的
史家豪 2019-09-03 17:46:32
下面的是停compute的

5.问题:| e737244d-adc6-4e37-b808-53c7b9ce2984 | snbs162_88_instance | SHUTOFF | powering-on | Shutdown | SNBS_162=10.238.162.88 |
解决:
nova reset-state --active e737244d-adc6-4e37-b808-53c7b9ce2984
刚才环境两个问题:shutdown的状态powering on ,active的电源状态为powering off。总共119
宫旭飞(16111371) 2019-11-08 14:31:54
nova reset-state 批量操作
nova stop 批量操作
nova start 批量操作
宫旭飞(16111371) 2019-11-08 14:32:34
还有就是
shutdow:powering-on 数据整理
active:powering-off 数据整理

6.计算节点给权限:
lsattr  /etc/ssh/sshd_config
chattr -i /etc/ssh/sshd_config

012-脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
生成ip配置文件
[root@xgto01n0102442501 opt]# cat user-33/1.sh
#!/bin/bash
for i in `seq 3 100`
do
    cp user-33-1.txt user-33-$i.txt
    sed -i 's/IPADDR=10.244.33.1/IPADDR=10.244.33.'${i}'/g' user-33-$i.txt
done

链接克隆生成虚机:
[root@xgto01n0102442501 opt]# cat 44-33-100.sh
for i in `seq 9 100`
do
    a=`cinder create --image-id f9bbdf34-fbc4-4845-99c1-8fea2912aa3c 50|grep "| id"|sed 's/|//g'|awk '{print $2}'`
    nova boot --flavor=95f5e8dd-783c-4ed6-90f6-f7a48ac68fdf --boot-volume=${a} --nic net-id=8181177d-a2c2-4f85-ad4c-39fb6ee38d1f,v4-fixed-ip=10.244.33.$i --user-data=/opt/user-33/user-33-$i.txt --config-drive true --availability-zone=nova:xgto01n010244025044.sncloud.com snbs33_${i}_instance
    echo 33-${i} ${a} >>/opt/user-33/create.log
done

生成xshell登录文件:
[root@block-storage14 111]# cat 2.sh
do2unix 10.244.33.1.xsh
for ip in `cat wxcs_ip.txt`
do
    cp 10.244.33.1.xsh $ip.xsh
    sed -i 's/Host=10.244.33.1/Host='$ip'/g' $ip.xsh
done
赞赏一下吧~