47.IaaSインフラストラクチャプラットフォームの導入と運用
137071 ワード
IaaSクラウドコンピューティングインフラストラクチャプラットフォーム
1.基礎環境:
2.Mysql構築:
3.Keystone構築:
4.Glance構築:
5.Nova構築:
6.Neutron構築:
7.Dashboard構築:
8.Heat構築:
9.Trove構築:
IaaSクラウドプラットフォームのメンテナンス
10.Rabbitmq運行メンテナンス:
11.Mysql運行メンテナンス:
12.MongoDB運転次元
13.Keystone運用:
14.Glance運行メンテナンス:
15.Nova運行次元:
Cinder次元:
Swift運行維持:
KVM運用次元:
ネットワーク次元:
Ceilometer運用次元:
Heat運維:
データ暗号化:
負荷分散:
ファイアウォール:
Mariadb高可用性:
システムエラー:
1.基礎環境:
1. , SELinux :
(1) controller; :compute。
# hostnamectl set-hostname controller
# hostnamectl set-hostname compute
(2) , 。
# systemctl stop firewalld.service
# systemctl disable firewalld.service
(3) selinux permissive。
# vi /etc/selinux/config
SELINUX=permissive
2. / 。
# hostname
3. / selinux 。
# getenforce
4. SecureFX
CentOS-7-x86_64-DVD-1511.iso, XianDian-IaaS-v2.2.iso opt , /opt , , ( )。
# mkdir /opt/centos /opt/iaas
# mount -o loop CentOS-7-x86_64-DVD-1511.iso /opt/centos
# mount -o loop XianDian-IaaS-v2.2.iso /opt/iaas
# df-Th
5. SecureFX
CentOS-7-x86_64-DVD-1511.iso, XianDian-IaaS-v2.2.iso opt , , 。
# mkdir /opt/centos /opt/iaas
# mount -o loop CentOS-7-x86_64-DVD-1511.iso /opt/centos
# mount -o loop XianDian-IaaS-v2.2.iso /opt/iaas
# df-Th
6. yum local.repo , ftp yum ; yum ftp.repo ftp yum , 。 cat / yum 。
[controller]
/etc/yum.repos.d local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas-repo
gpgcheck=0
enabled=1
[root@controller ~]# cat /etc/yum.repos.d/local.repo
【compute】
/etc/yum.repos.d ftp.repo
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.100.10/iaas-repo
gpgcheck=0
enabled=1
# cat /etc/yum.repos.d/ftp.repo
7. iaas-xiandian , , 。
# yum install -y iaas-xiandian
# vi /etc/xiandian/openrc.sh
# scp /etc/xiandian/openrc.sh 192.168.100.20:/etc/xiandian/
2.Mysql構築:
1. , iaas-install-mysql.sh 。
# time /usr/local/bin/iaas-install-mysql.sh
2. root , 。
# mysql -uroot -p000000
MariaDB [(none)]> show databases;
3. root , mysql , 。
# mysql -uroot -p000000
MariaDB [(none)]> show databases;
MariaDB [(none)]> use mysql;
MariaDB [mysql]> show tables;
4. root , mysql , , user 。
MariaDB [mysql]> select host,user,password from user;
3.Keystone構築:
1. keystone , keystone 。
iaas-install-keystone.sh
# mysql -uroot -p000000
MariaDB [(none)]> use keystone;
MariaDB [keystone]> desc access_token;
2. keystone 。
# mysql -uroot -p000000
MariaDB [(none)]> use keystone;
MariaDB [keystone]> show tables;
3. , 。
# source /etc/keystone/admin-openrc.sh
# openstack role list
4. , admin 。
# openstack project show admin
5. , 。
# openstack user list
6. , admin 。
# openstack user show admin
7. , 。
# openstack service list
8. keystone keystone.sql , keystone.sql 。
# mysqldump -uroot -p000000 keystone > keystone.sql
# du -h keystone.sql
4.Glance構築:
1. , iaas-install-glance.sh glance 。
CentOS_7.2_x86_64_XD.qcow2 glance CentOS7.2, qcow2。
# iaas-install-glance.sh
# source admin-openrc.sh ( )
# glance image-create --name "CentOS7.0" --disk-format qcow2 --container-format bare --progress < /opt/images/centos_7-x86_64_xiandian.qcow2
2. , CentOS7.2 。
# glance image-list
# glance image-show 30ea40cb-62b6-4866-90bd-3ec7ef3d79eb ( id )
3. , glance 。
# systemctl status openstack-glance-registry.service openstack-glance-api.service
5.Nova構築:
1. nova ,
iaas-install-nova-controller.sh、 iaas-install-nova-compute.sh, nova 。
# iaas-install-nova-controller.sh
# iaas-install-nova-compute.sh
2. 。
# nova hypervisor-list
+----+---------------------+-------+---------+
| ID | Hypervisor hostname | State | Status |
+----+---------------------+-------+---------+
| 1 | compute | up | enabled |
| 2 | controller | up | enabled |
+----+---------------------+-------+---------+
3. nova 。
# nova service-list
4. 。
# nova network-list
5. nova 。
# nova quota-show
# nova host-list
# nova host-describe compute
6.Neutron構築:
1. neutron , neutron , neutron , GRE 。
# iaas-install-neutron-controller.sh
# iaas-install-neutron-compute.sh
# iaas-install-neutron-controller-gre.sh
# iaas-install-neutron-compute-gre.sh
2. neutron , neutron , neutron , VLAN 。
# iaas-install-neutron-controller-vlan.sh
# iaas-install-neutron-compute-vlan.sh
3. , 。
# neutron agent-list | cut - d"|" -f3,8,6
4. “binary” 。
# neutron agent-list | cut -c 119-160
# neutron agent-list | cut -d "|" -f 8
# mysql -uroot -p000000
MariaDB [(none)]> use neutron;
MariaDB [neutron]> show tables;
MariaDB [neutron]> select 'binary' from agents;
5. DHCP agent 。
# mysql -uroot -p000000
MariaDB [(none)]> use neutron;
MariaDB [neutron]> show tables;
MariaDB [neutron]> select id from agents where agent_type= 'DHCP agent';
[root@controller ~]# neutron agent-show 8631b6d5-1b70-4de1-a7d5-73b2d2a446ed
6. ovs-vswitchd 。
# ovs-vsctl list-br
7. ovs-vswitchd br-ex 。
# ovs-vsctl list-ports br-ex
8. ext-net, ext-subnet, IP 192.168.200.100 ~ 192.168.200.200, 192.168.200.1。 int-net1, int-subnet1, IP 10.0.0.100 ~ 10.0.0.200, 10.0.0.1; int-net2, int-subnet2, IP 10.0.1.100 ~ 10.0.1.200, 10.0.1.1。 ext-router , ext-net , int-net1 , int-net1 。
# neutron net-create --router:external=true ext-net1
# neutron subnet-create --name ext-subnet1 --allocation-pool start=192.168.200.100,end=192.168.200.200 --gateway 192.168.200.1 --enable-dhcp --ip-version 4 ext-net 192.168.200.0/24
# neutron net-create int-net1
# neutron subnet-create --name int-subnet1 --allocation-pool start=10.0.0.100,end=10.0.0.200 --gateway 10.0.0.1 --ip-version 4 int-net1 10.0.0.0/24
# neutron net-create int-net2
# neutron subnet-create --name int-subnet2 --allocation-pool start=10.0.1.100,end=10.0.1.200 --gateway 10.0.1.1 --ip-version 4 int-net2 10.0.1.0/24
# neutron router-create ext-router
# neutron router-gateway-set 8d8ea5f2-895d-4e78-a40b-d444097c14dc// id ea3bf9b6-bb5e-400c-ae07-18755145268// neutron net-list name ext-net1 id
# neutron router-interface-add 8d8ea5f2-895d-4e78-a40b-d444097c14dc 4c5519fc-377b-4746-9aea-4dc93c4265b0// neutron net-list name ext-net1 sub-net id
9. 。
# neutron router-list
# neutron router-show 46c33de5-a148-46a2-9223-72eb6e56cb5c // id
10. , 。
# neutron subnet-list
# neutron subnet-show 5130a772-60f9-4492-a9ea-2c3002812ba9
// id
11. 。
# neutron net-list
7.Dashboard構築:
1. iaas-install-dashboard.sh dashboard , curl http://192.168.100.10/dashboard。
# iaas-install-dashboard.sh
# curl -i http://192.168.100.10/dashboard
2. iaas-install-dashboard.sh dashboard , chrome admin , 。
http://192.168.100.10/dashboard/admin/info/
8.Heat構築:
1. iaas-install-heat.sh heat 。
# iaas-install-heat.sh
2. heat , stack 。
# heat stack-list
3. server.yml , server.yml mystack, CentOS7.2、 int-net2。
# glance image-list
# nova network-list
# heat stack-create -f server.yml -P ImageId=CentOS7.2 -P NetID=int-net2 mystack( )
# heat stack-create -f server.yml -P 0d234b90-f11c-4cf6-b298-9ecbb8e54b34=CentOS7.2 -P ce494d87-a05c-4575-bcba-d79c3bedae8d=int2-net mystack
4. mystack CREATE_COMPLETE 。
# heat event-list mystack
5. mystack 。
# heat event-show mystack
9.Trove構築:
: trove cinder swift
1. iaas-install-trove.sh, int-net1, trove , trove 。 。
# iaas-install-trove.sh
# mysql -uroot -p000000
MariaDB [(none)]> use trove;
MariaDB [(none)]> show databases;
2. MySQL_5.6_XD.qcow2 , mysql , 。
# glance image-create --name "mysql-5.6" --disk-format qcow2 --container-format bare --progress < /opt/images/MySQL_5.6_XD.qcow2
# trove-manage datastore_update mysql ''
# glance_id=$(glance image-list | awk '/ mysql-5.6 / { print $2 }')
# trove-manage datastore_version_update mysql mysql-5.6 mysql ${glance_id} '' 1
3. mysql-1, 5G, myDB、 user, r00tme, m1.small trove , mysql-1 。
# FLAVOR_ID=$(openstack flavor list | awk '/ m1.small / { print $2 }')
# trove create mysql-1 ${FLAVOR_ID} --size 5 --databases myDB --users user:r00tme --datastore_version mysql-5.6 --datastore mysql
# trove list
4. , mysql 。
# mysql -uroot -p000000
> select version();
IaaSクラウドプラットフォームのメンテナンス
10.Rabbitmq運行メンテナンス:
1. , 。
:
(1) :IaaS
(2) :Xiandian-IaaS-All.qcow2
(3) :4cpu、8G 、100G
(4) : 1:int-net1, IP
2:int-net2
: IaaS , IaaS , 。
, , 。
2. rabbitmqctl xiandian-admin, admin。
# rabbitmqctl add_user xiandian-admin admin
3. rabbitmqctl 。
# rabbitmqctl list_users
4. xiandian-admin , 。
# rabbitmqctl set_permissions -p / xiandian-admin ".*" ".*" ".*"
5. rabbitmqctl 。
# rabbitmqctl cluster_status
6. xiandian-admin administrator , 。
# rabbitmqctl set_user_tags xiandian-admin administrator
# rabbitmqctl list_users
7. xiandian-admin , , xiandian-admin 。
# rabbitmqctl set_permissions -p / xiandian-admin ".*" ".*" ".*"
# rabbitmqctl list_user_permissions xiandian-admin
8. rabbitmqctl , , name,arguments, messages,memory。
# rabbitmqctl list_queues
9. memcache , ps memcahce , 、 、 memcache 。
# vi /etc/sysconfig/memcached
# ps -ef | grep memcached
10. rabbitmq , 。
11.Mysql運行メンテナンス:
1. 。
# mysql -uroot -p000000
MariaDB [(none)]> show variables like 'character_set_database';
2. mysql 。
MariaDB [(none)]> select now();
3. mysql , 。
MariaDB [(none)]> select user();
4. mysql , mysql , mysql 。
MariaDB [(none)]> show variables like 'default_storage_engine';
MariaDB [(none)]> show engines;
5. keystone, user local_user ,u user ,lu local_user ,sql neutron enabled 0, user local_user 。
MariaDB [(none)]> use keystone;
MariaDB [keystone]> update user u,local_user lu set u.enabled=0 where u.id=lu.user_id and lu.name='neutron';
6. keystone, user local_user ,u user ,lu local_user , nova enabled , user local_user 。
MariaDB [(none)]> use keystone;
MariaDB [keystone]> select u.enabled from user u,local_user lu where u.id=lu.user_id and lu.name='nova';
7. , examuser, 000000, mysql user 。 “ ”“ ”“ ”“ ” 。
# mysql -uroot -p000000
MariaDB [(none)]> use mysql;
MariaDB [mysql]> create user 'examuser'@'localhost' identified by '000000';
MariaDB [mysql]> select Host,User,Password from user where User='examuser';
MariaDB [mysql]> grant select,insert,update,delete on *.* to 'examuser'@'localhost' identified by '000000';
8. iaas , mysql , keystone , , id 。( )
# mysql -uroot -p000000
MariaDB [(none)]> use keystone;
MariaDB [keystone]> select * from local_user order by id desc;
12.MongoDB運転次元
1. iaas , MongoDB , , ceilometer , , , 。
[root@controller ~]# mongo //
> show dbs; //
> use ceilometer; //
> show collections; //
> show users; //
> use wjm
switched to db wjm // wjm
> db.createCollection('wjm')
{ "ok" : 1 } //
2. iaas , MongoDB , , , , 。
[root@controller ~]# mongo //
> use dancy // dancy
switched to db dancy
> db.user.insert({"name": "dancy", "age": 23}) //
WriteResult({ "nInserted" : 1 })
> db.user.find() // : db.user.find() , find ( )
{ "_id" : ObjectId("5cad7de3136f9fa15d2a9a8e"), "name" : "dancy", "age" : 23 }
3. iaas , MongoDB , , , , , , , 。
> use cyw; //
switched to db cyw
> db.createCollection("yunjisuan");
{ "ok" : 1 }
>db.yunjisuan.insert({"name":"chengyinwu","age":20,"jiguan":"qingyang"}); //
WriteResult({ "nInserted" : 1 })
> db.yunjisuan.insert({"name":"zhufanyu","age":20});
WriteResult({ "nInserted" : 1 })
> db.yunjisuan.update({"name":"zhufanyu"},{"age":21}); //
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.yunjisuan.find() //
{ "_id" : ObjectId("5cad8b903345be69b178b3d9"), "name" : "chengyinwu", "age" : 20, "jiguan" : "qingyang" }
{ "_id" : ObjectId("5cad8bbf3345be69b178b3da"), "age" : 21 }
4. iaas , MongoDB , , , ( ), , , , 。
> use zhangsan //
switched to db zhangsan
> db.createCollection("chengxuyuan")
{ "ok" : 1 }
> db.chengxuyuan.insert({"name":"yihao","age":100});
WriteResult({ "nInserted" : 1 }) // ( )
> db.chengxuyuan.insert({"name":"yihao","age":100});
WriteResult({ "nInserted" : 1 })
> db.chengxuyuan.remove({"name":"yihao"})
WriteResult({ "nRemoved" : 2 }) //
> db.dropDatabase() //
{ "dropped" : "zhangsan", "ok" : 1 }
5. iaas , MongoDB , , , , , 。
> use cyw; //
switched to db cyw
> db.createCollection("yunjisuan");
{ "ok" : 1 }
>db.yunjisuan.insert({"name":"chengyinwu","age":20,"jiguan":"qingyang"}); //
WriteResult({ "nInserted" : 1 })
> db.yunjisuan.insert({"name":"zhufanyu","age":20});
WriteResult({ "nInserted" : 1 })
> db.yunjisuan.update({"name":"zhufanyu"},{"age":21}); //
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.yunjisuan.find().sort({age:1}) // age
6. iaas , MongoDB , , , , for , i=1, "_id" : i,"name" : "xiaoming", "age" : "21"。 , , 。
> use dhd;
switched to db dhd
> for(var i=1;i<10;i++){db.dhd.insert({_id:i,name:"xiaoming",age:21})}
WriteResult({ "nInserted" : 1 })
> db.dhd.find();
{ "_id" : 1, "name" : "xiaoming", "age" : 21 }
{ "_id" : 2, "name" : "xiaoming", "age" : 21 }
{ "_id" : 3, "name" : "xiaoming", "age" : 21 }
{ "_id" : 4, "name" : "xiaoming", "age" : 21 }
{ "_id" : 5, "name" : "xiaoming", "age" : 21 }
{ "_id" : 6, "name" : "xiaoming", "age" : 21 }
{ "_id" : 7, "name" : "xiaoming", "age" : 21 }
{ "_id" : 8, "name" : "xiaoming", "age" : 21 }
{ "_id" : 9, "name" : "xiaoming", "age" : 21 }
7. iaas , mongoimport , , MongoDB 。 MongoDB 。 。 :PPG-- ;PTS-- ;FG%-- ;3P%-- ;MPG--
mongoimport -d basketball -c player test.dat
use basketball
db.player.find({"MPG":{$gt:"35"},"PPG":{$gte:"20"},"PPG":{$lte:"25"}}).sort({"PTS":-1})
13.Keystone運用:
1. keystone testuser, password。
# source /etc/keystone/admin-openrc.sh
# openstack user create --domain demo --password password testuser
2. testuser admin , user 。
# openstack role add --project admin --user testuser user
3. testuser 000000。
# openstack user set --password 000000 testuser
4. openstack token 。
[root@controller ~]# openstack token issue
5. 。
[root@controller ~]# mysql -uroot -p000000
MariaDB [(none)]> use keystone;
MariaDB [keystone]> select * from service; //
MariaDB [keystone]> select * from endpoint; //
6. 。
[root@controller ~]# openstack service list
7. keystone testuser, password, , testuser 000000, testuser 。
# source /etc/keystone/admin-openrc.sh
# openstack user create --domain demo --password password testuser
# openstack user set --password 000000 testuser
[root@controller ~]# openstack user list
[root@controller ~]# openstack user show b4c59d24268c445da8e69ccb1ff826d8
8. keystone testuser, password, , testuser down, testuser 。
# source /etc/keystone/admin-openrc.sh
# openstack user create --domain demo --password password testuser
9. keystone HTTPS 。
[root@controller ~]# keystone-manage ssl_setup
14.Glance運行メンテナンス:
1. glance CentOS_6.5_x86_64_XD.qcow2 , testone, openstack , 。
# source /etc/keystone/admin-openrc.sh
# glance image-create –name “testone” –disk-format qcow2 –container-format bare –progress < /opt/images/ CentOS_6.5_x86_64_XD.qcow2
# openstack image list
# openstack image show id
2. glance , testone, testtwo, CentOS_6.5_x86_64_XD.qcow2, openstack , checksum 。
# glance image-create –name “testone” –disk-format qcow2 –container-format bare –progress < /opt/images/ CentOS_6.5_x86_64_XD.qcow2
# glance image-create –name “testtwo” –disk-format qcow2 –container-format bare –progress < /opt/images/ CentOS_6.5_x86_64_XD.qcow2
# openstack image list
# openstack image show id
3. iaas , glance , , CentOS_6.5_x86_64_XD.qcow2, testone, openstack examimage, openstack 。
# source /etc/keystone/admin-openrc.sh
# glance image-create --name "testone" --disk-format qcow2 --container-format bare --progress < /opt/images/CentOS_6.5_x86_64_XD.qcow2
# openstack image set testone --name examimage
# openstack image list
4 glance , , CentOS_6.5_x86_64_XD.qcow2, examimage, openstack , , lastone, 。
# glance image-create --name "examimage" --disk-format qcow2 --container-format bare --progress < /opt/images/CentOS_6.5_x86_64_XD.qcow2
# openstack image list
[root@controller ~]# openstack image set examimage --tag lastone
[root@controller ~]# openstack image show 315f8ebc-8ffb-43a2-8102-b84a40fafbaf
5. , :
(1) curl ;
(2) openstack token ;
(3) awk “|” token 。
[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]#curl -i -H "X-Auth-Token:`openstack token issue | awk -F '|' ' / id / {print $3}'`" http://controller:9292/v2/images
6. , :
(1) ID ;
(2) openstack ;
(3) glance ;
(4) awk “|” ID 。
[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]#curl -i -H "X-Auth-Token:`openstack token issue | awk -F '|' ' / id / {print $3}'`" http://controller:9292/v2/images
7. glance , , , qemu 。
# cat /etc/glance/glance-api.conf
15.Nova運行次元:
1. tenant , 。
# nova quota-class-show default
# nova quota-class-update --instances 20 default
# nova quota-class-show default
2. nova , 。
# nova flavor-create exam 1234 1024 20 2
# nova flavor-show 1234
3. nova , nova 。
# nova service-list
4. tenant 。
# nova quota-class-show default
# nova quota-class-update --instances 20 default
# nova quota-class-show default
5. nova , nova , 。
[root@controller ~]# nova hypervisor-list
[root@controller ~]# nova hypervisor-show controller
6. grep -v /etc/nova/nova.conf /etc/novaback.conf 。
# grep -v '#' /etc/nova/nova.conf > /etc/novaback.conf
7. iaas , nova , , m1.small, CentOS_6.5_x86_64_XD.qcow2, examtest。
[root@controller ~]# nova start examtest
8. iaas , openstack , , m1.small, centos6.5, xxxtest, openstack 。
[root@controller ~]# openstack image list
9. , dashboard , , , 。(controller )
[root@compute~]#cd/var/lib/nova/instances/
[root@computeinstances]#ll
[root@computeinstances]#scp-r62b6ab26-7040-4a04-9456-23549a2a0ddb/root@controller:/var/lib/nova/instances/
[root@controller~]#cd/var/lib/nova/instances/
[root@controllerinstances]#ll
[root@controllerinstances]#chown-Rnova:nova62b6ab26-7040-4a04-9456-23549a2a0ddb/
MariaDB[(none)]>showdatabases;
MariaDB[(none)]>usenova;
MariaDB[nova]>updateinstancessethost='controller',node='controller'whereuuid='62b6ab26-7040-4a04-9456-23549a2a0ddb';
[root@controllerinstances]#systemctlrestartopenstack-nova-compute
[root@controllerinstances]#novastart62b6ab26-7040-4a04-9456-23549a2a0ddb
10. iaas-all , nova 。
[root@controller ~]# cd /var/lib/nova/instances/
11. , openstack 、 。
# /etc/neutron/neutron.conf
12. NFS nova 。
Cinder次元:
1. , /dev/vda , , , 。
[root@cyw ~]# fdisk /dev/vda
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): p
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-83873316, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-83873316, default 83873316): 10240
Partition 1 of type Linux and of size 4 MiB is set
2. , , 。
Fdisk -l
3. , , 。
4. , , 。
5. , 。
6. , /dev/vda , , cinder-volumes , 。
7. , lvm , cinder , 。
8. iaas , /dev/vda , pvs , cinder-volumes vgs 。
9 . controller , , centos6.5,flavor m1.medium, 。 iaas , , iaas , iaas df -h 。
[root@controller ~]# lsblk
[root@controller ~]# vgs
[root@controller ~]# lvs
[root@controller ~]# pvcreate /dev/vda3
[root@controller ~]# vgextend VolGroup /dev/vda3
[root@controller ~]# vgs
[root@controller ~]# lVextend -L +5G /dev/mapper/VolGroup-lv_root
[root@controller ~]# df -h
[root@controller ~]# resize2fs /dev/mapper/volGroup-lv_root
[root@controller ~]# df -h
10 . “iaas-all” , /dev/vda , , raid , md0 ext4 UUID。
12 . “iaas-all” , cinder , cinder 10 G , cinder 。
[root@xiandian~]#fdisk/dev/vda
Command(mforhelp):n
Select(defaultp):p
Lastsector,+sectorsor+size{K,M,G}(104857600-209715199,default209715199):+10G
Command(mforhelp):w
root@xiandian~]#lsblk
[root@xiandian~]#partprobe
[root@xiandian~]#lsblk
[root@xiandian~]#pvcreate/dev/vda2
Device/dev/vda2notfound(orignoredbyfiltering).
[root@xiandian~]#vi/etc/lvm/lvm.conf
[root@xiandian~]#pvcreate/dev/vda2
Physicalvolume"/dev/vda2"successfullycreated
[root@xiandian~]#pvs
PVVGFmtAttrPSizePFree
/dev/vda2lvm2---10.00g10.00g
/dev/vda7cinder-volumeslvm2a--4.75g4.75g
[root@xiandian~]#vgextendcinder-volumes/dev/vda2
Volumegroup"cinder-volumes"successfullyextended
[root@xiandian~]#vgs
VG#PV#LV#SNAttrVSizeVFree
cinder-volumes200wz--n-14.74g14.74g
13 . , cinder backup 。
14. NFS cinder 。
Swift運行維持:
1. swift , , 。
[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# swift stat //
[root@controller ~]# swift post test //
[root@controller ~]# swift list --lh //
2. swift , , 。
[root@controller ~]# swift post test //
[root@controller ~]# swift stat //
3. swift , swift 。
4. swift , , ( ), , 。
[root@controller ~]# swift post test //
[root@controller ~]# dd if=/dev/zero of=/tmp/example-500Mb bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 0.380656 s, 1.4 GB/s
[root@controller ~]# swift list --lh //
5. iaas , openstack , , , ( ) , 。
[root@controller ~]# swift post test //
[root@controller ~]# dd if=/dev/zero of=/tmp/example-500Mb bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 0.380656 s, 1.4 GB/s
[root@controller ~]# swift list --lh //
6. IaaS , swifter , swift , swifter swift , swifter swift , url swift 。
7. url , admin swift , url 。
8. swift glance , 。
KVM運用次元:
1. IaaS KVM ,
virsh domain-id, domain-id IaaS。
2. IaaS KVM ,
virsh domain-id, domain-id IaaS。
3. iaas 。 compute , KVM cpu 。
[root@controller ~]# ps -e|grep kvm
4. 。 controller , kvm I/O ,centos7 deadline, noop 。
5. iaas 。 controller , cat ,
/dev/hugepages/ 。
[root@xiandian ~]# echo 20 > /proc/sys/vm/nr_hugepages
[root@xiandian ~]# grep Huge /proc/meminfo
AnonHugePages: 1067008 kB
HugePages_Total: 20
HugePages_Free: 20
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB6. 192.168.100.10/dashboard, 。 , virsh , , 。
[root@controller~]#virsh
virsh#dominfoinstance-000000fd
virsh#setmeminstance-000000fd5242880
virsh#dominfoinstance-000000fd
7.KVM : , , , 。
ネットワーク次元:
1. JDK 。 , JDK 。
[root@controller ~]# java -version
2. Maven 。 , Maven 。
[root@controller ~]# java -version
3 . OpenDaylight , curl
http://192.168.100.10:8181/index.html。
[root@controller ~]# curl http://192.168.100.10:8181/index.html
4 . br-test, enp9s0 br-test, openvswitch
。
5 . ns。
6. br-test tap。
7. ns tap 172.16.0.10/24。
8. tap 。
9. openvswitch openstack 。
Ceilometer運用次元:
1. ceilometer , 。
[root@controller ~]# ceilometer meter-list
2. ceilometer , 。
[root@controller ~]# ceilometer meter-list -q resource_id=a55e5bda-2a94-471e-a773-3ed65259b85b
3. ceilometer , 。
[root@controller ~]# ceilometer event-list
4. ceilometer , 。
[root@controller ~]# ceilometer resource-list
5. , ceilometer 。 。
(1) :cpu_hi
(2) :cpu_util
(3) :70.0
(4) :
(5) :
(6) :600s
(7) :3
(8) URL :'log://'
(9) :resource_id=INSTANCE_ID
# ceilometer alarm-threshold-create --name cpu_hi --meter-name cpu_util --threshold 70.0 --comparison -operator gt --statistic avg --period 600 --evaluqtion-periods 3 --alarm-action 'log://' --query resource_id=INSTANCE_ID
6. ceilometer , 。
[root@controller ~]# ceilometer alarm-list
7. ceilometer , 。
[root@controller ~]# ceilometer alarm-history (id )
8. ceilometer , 。
[root@controller ~]# ceilometer alarm-update --enabled False
9. ceilometer , , 。
# ceilometer alarm-delete -a id
10. Ceilometer , , Ceilometer
。
Heat運維:
1. heat , heat 。
[root@controller ~]# heat service-list
2. heat , 。
[root@controller ~]# heat resource-type-list //
[root@controller ~]# heat resource-type-show OS::Nova::ServerGroup //
3. heat , heat 。
[root@controller ~]# heat template-version-list
4. heat , heat 。
[root@controller ~]# heat template-function-list
5. server.yml heat stack, glance
centos7, int-net1。 stack 。
# glance image-list
# nova network-list
# heat stack-create -f server.yml -P ImageId=CentOS7.2 -P NetID=int-net2 mystack( )
# heat stack-create -f server.yml -P 0d234b90-f11c-4cf6-b298-9ecbb8e54b34=CentOS7.2 -P ce494d87-a05c-4575-bcba-d79c3bedae8d=int2-net mystack
6. server.yml , yml mystack, centos6.5, int-net1, , mystack CREATE_COMPLETE 。
# heat event-list mystack
7. server.yml , 。 heat test-heat stack, glance centos7, int-net1。 stack 。
# heat event-show mystack
データ暗号化:
: fixed_key, cinder nova Block Storage , , luks, ,cipher “aes-xts-plain64”,key_size “512”,control-location “front-end”,Provider “nova.volume.encryptors.luks.LuksEncryptor”。
1. 。
2. , , luks 。 。
3 . , , luks 。 nova , , cirros , attach , cinder list 。
4 . , , luks 。 nova , , cirros , attach , strings 。
負荷分散:
1. neutron , neutron lbaas 。( )
2. nginx , http , 。 vip:nginx-vip, http , 80,HTTP_COOKIE 。 neutron nginx 、nginx-vip 。
3. nginx , http , 。 vip:nginx-vip, http , 80,HTTP_COOKIE 。 haproxy 。( )
[root@controller ~]# cd /var/lib/neutron/lbaas/
[root@controller lbaas]# cat /var/lib/neutron/lbaas/9412c907-99f5-401b-b5bc-0d1a7628387e/conf
global
daemon
user nobody
group haproxy
log /dev/log local0
log /dev/log local1 notice
stats socket /var/lib/neutron/lbaas/9412c907-99f5-401b-b5bc-0d1a7628387e/sock mode 0666 level user
defaults
log global
retries 3
option redispatch
timeout connect 5000
timeout client 50000
timeout server 50000
frontend 42aea3d2-84fb-4b15-97c7-cd56376fc360
option tcplog
bind 10.0.0.4:80
mode http
default_backend 9412c907-99f5-401b-b5bc-0d1a7628387e
option forwardfor
backend 9412c907-99f5-401b-b5bc-0d1a7628387e
mode http
balance roundrobin
option forwardfor[root@controller lbaas]#
ファイアウォール:
1. , icmp , IP、 、 IP、 ICMP 。 neutron 、 。( )
[root@controller ~]# neutron firewall-rule-list
[root@controller ~]# neutron firewall-rule-show
2. , nginx , nginx-80, IP、 、 IP、 80 。 nginx-policy, nginx-80 。 neutron 、
、 。( )
[root@controller ~]# neutron firewall-show
[root@controller ~]# neutron firewall-policy-show
[root@controller ~]# neutron firewall-rule-show
Mariadb高可用性:
1. , mariadb , 。
2. , mariadb , 。
3. mariadb , 。
システムエラー:
1. awk , , “key” , “,” 。
# awk -F “” ‘$1~/key/{print $NF}’ cheng.txt
2. sed , 10 。
[root@controller ~]# sed -n '10,10p' cheng.txt
3. sed , “key” “guanjianci”。
[root@controller ~]# sed -i "s/key/guanjianci/g" cheng.txt
4. grep , “[” “]” 。
5. grep , “key” 。
6 . “iaas-all” , curl , token , token
, 。
7 . “iaas-all” , curl , token , token
, 。
8 . “iaas-all” , token , curl , 。
9. ,
, 。
10. , , 。
11. keystone , , 。
12. , , 。
13. , , 。
14. , , 。
15. , , 。
16. , , 。
17. , , 。
18. , , , 。 , 。
19. Ceph , Ceph openstack , glance、nova、cinder、swift