Corso Cloud Storage Es4
Esercitazione 4
Eseguire i comandi seguenti sul nodo stack-group-0#
Configurazione dei servizi OpenStack per il backend GPFS
Per default i junction point generati al mount dei fileset hanno permission 500 ed ownership root.
- Modificare a 755 i permessi della directory /gpfs/openstack
root@stack-group-00:~# chmod 755 /gpfs/openstack/
Configurazione e test di Glance
- Identificare l'utente owner dei servizi glance
- Create la directory /gpfs/openstack/glance/images con corrette permission ed ownerchip
- Configurare il servizio glance-api (/etc/glance/glance-api.conf) per utilizzare per lo store delle immagini la directory /gpfs/openstack/glance/images
- Riavviare il servizio glance-api
- Come utente openstack admin e project openstack creare una immagine dall'URL cp
Comandi: openstack create image
root@stack-group-00:~# ps -e -o user,group,cmd |grep glance root root grep --color=auto glance glance glance /usr/bin/python /usr/bin/glance-registry --log-file=/var/log/glance/glance-registry.log --config-file=/etc/glance/glance-registry.conf glance glance /usr/bin/python /usr/bin/glance-registry --log-file=/var/log/glance/glance-registry.log --config-file=/etc/glance/glance-registry.conf glance glance /usr/bin/python /usr/bin/glance-registry --log-file=/var/log/glance/glance-registry.log --config-file=/etc/glance/glance-registry.conf glance glance /usr/bin/python /usr/bin/glance-api --log-file=/var/log/glance/glance-api.log --config-file=/etc/glance/glance-api.conf glance glance /usr/bin/python /usr/bin/glance-api --log-file=/var/log/glance/glance-api.log --config-file=/etc/glance/glance-api.conf glance glance /usr/bin/python /usr/bin/glance-api --log-file=/var/log/glance/glance-api.log --config-file=/etc/glance/glance-api.conf root@stack-group-00:~# mkdir -m 755 -p /gpfs/openstack/glance/images root@stack-group-00:~# chown -R glance.glance /gpfs/openstack/glance/ root@stack-group-00:~# ls -ld /gpfs/openstack/glance/ drwxr-xr-x 3 glance glance 4096 ott 2 15:06 /gpfs/openstack/glance/ root@stack-group-00:~# ls -l /gpfs/openstack/glance/ total 0 drwxr-xr-x 2 glance glance 4096 ott 2 15:06 images
Nella sezione [glance_store] del file di configurazione /etc/glance/glance-api.conf:
- verificare che stores include lo store-type file
- veirficare che default_store sua file
- modificare filesystem_store_datadir
[glance_store] stores = http,file default_store = file filesystem_store_datadir = /gpfs/openstack/glance/images/
root@stack-group-00:~# service glance-api restart glance-api stop/waiting glance-api start/running, process 31435
Quindi caricare l'immagine raw:
root@stack-group-00:~# openstack --os-image-api-version 1 image create --copy-from http://group-www.recas.ba.infn.it/gpfs/debian-8.6.0-openstack-amd64.raw debian-8.6.0-openstack-amd64.raw +------------------+--------------------------------------+ | Field | Value | +------------------+--------------------------------------+ | checksum | None | | container_format | bare | | created_at | 2016-10-02T14:16:47.000000 | | deleted | False | | deleted_at | None | | disk_format | raw | | id | 5736c4c9-0697-4ccf-acfe-17a42593dcda | | is_public | False | | min_disk | 0 | | min_ram | 0 | | name | debian-8.6.0-openstack-amd64.raw | | owner | d0115388e572440eb53c4a8671fef6ae | | properties | | | protected | False | | size | 8589934592 | | status | queued | | updated_at | 2016-10-02T14:16:47.000000 | | virtual_size | None | +------------------+--------------------------------------+ root@stack-group-00:~# ls /gpfs/openstack/glance/images/ 5736c4c9-0697-4ccf-acfe-17a42593dcda
Configurazione di Nova
- Creare le directory /gpfs/openstack/nova/instances con permessi 755 ed ownership appropriato
- Modificare nel file di configurazione /etc/nova/nova.conf il path di accesso alle immagini delle istanze in /gpfs/openstack/nova/instances/
- riavviare il servizio nova-compute
root@stack-group-00:/etc/nova# mkdir -m 755 -p /gpfs/openstack/nova/instances root@stack-group-00:/etc/nova# ps -e -ouser,group,cmd |grep nova root root grep --color=auto nova nova nova /usr/sbin/apache2 -k start nova nova /usr/sbin/apache2 -k start ... nova nova /usr/bin/python /usr/bin/nova-api --log-file=/var/log/nova/nova-api.log --config-file=/etc/nova/nova.conf nova nova /usr/bin/python /usr/bin/nova-api --log-file=/var/log/nova/nova-api.log --config-file=/etc/nova/nova.conf nova nova /usr/bin/python /usr/bin/nova-api --log-file=/var/log/nova/nova-api.log --config-file=/etc/nova/nova.conf
root@stack-group-00:/etc/nova# chown -R nova.nova /gpfs/openstack/nova/
Modificare il file /etc/nova/nova.conf aggiungendo nella sezione [DEFAULT]:
[DEFAULT] ... instances_path=/gpfs/openstack/nova/instances
Riavviare nova-compute
service nova-compute restart
Configurazione di Cinder
- Creare le directory /gpfs/openstack/cinder/volumes con permessi 755 ed ownership appropriato
- Nel file di configurazione /etc/cinder/cinder.conf:
- Aggiungere il backend gpfs tra quelli abilitati
- Configurare il backend gpfs cone default
- Aggiungere sezione [gpfs] specificando come driver cinder.volume.drivers.ibm.gpfs.GPFSDriver, mount point /gpfs/openstack/cinder/volumes/, share mode copy_on_write, massimo livello di clone 3 e storage pool system. Specificare inoltre la directory delle immagini glance configurata in precedenza.
- riavviare i servizi cinder-api e cinder-volume
- creare un nuovo volume-type chiamato gpfs
Comandi da utilizzare: openstack volume type create
root@stack-group-00:/etc/nova# mkdir -m 755 -p /gpfs/openstack/cinder/volumes
root@stack-group-00:/etc/nova# ps -e -ouser,group,cmd |grep cinder root root grep --color=auto cinder cinder cinder /usr/bin/python /usr/bin/cinder-volume --log-file=/var/log/cinder/cinder-volume.log --config-file=/etc/cinder/cinder.conf cinder cinder /usr/bin/python /usr/bin/cinder-volume --log-file=/var/log/cinder/cinder-volume.log --config-file=/etc/cinder/cinder.conf cinder cinder /usr/bin/python /usr/bin/cinder-scheduler --log-file=/var/log/cinder/cinder-scheduler.log --config-file=/etc/cinder/cinder.conf cinder cinder /usr/bin/python /usr/bin/cinder-api --log-file=/var/log/cinder/cinder-api.log --config-file=/etc/cinder/cinder.conf cinder cinder /usr/bin/python /usr/bin/cinder-api --log-file=/var/log/cinder/cinder-api.log --config-file=/etc/cinder/cinder.conf cinder cinder /usr/bin/python /usr/bin/cinder-api --log-file=/var/log/cinder/cinder-api.log --config-file=/etc/cinder/cinder.conf
root@stack-group-00:/etc/nova# chown -R cinder.cinder /gpfs/openstack/cinder/
Modificare nel file /etc/cinder/cinder.conf:
default_volume_type=gpfs enabled_backends=BACKEND_1,gpfs
Aggiundgere la sezione:
[gpfs] volume_driver = cinder.volume.drivers.ibm.gpfs.GPFSDriver gpfs_mount_point_base = /gpfs/openstack/cinder/volumes/ gpfs_images_dir = /gpfs/openstack/glance/images/ gpfs_images_share_mode = copy_on_write gpfs_max_clone_depth = 3 gpfs_sparse_volumes = True gpfs_storage_pool = system volume_backend_name = GPFS
Creare il volume type:
root@stack-group-00:/etc/nova# openstack volume type create --public gpfs +---------------------------------+--------------------------------------+ | Field | Value | +---------------------------------+--------------------------------------+ | description | None | | id | ea0624d9-3550-4e3c-98b5-5c55f91d4d33 | | is_public | True | | name | gpfs | | os-volume-type-access:is_public | True | +---------------------------------+--------------------------------------+
Assegnare al volume type gpfs la property volume_backend_name=GPFS
root@stack-group-00:~# openstack volume type set gpfs --property volume_backend_name=GPFS root@stack-group-00:~# openstack volume type show gpfs +---------------------------------+--------------------------------------+ | Field | Value | +---------------------------------+--------------------------------------+ | description | None | | id | ea0624d9-3550-4e3c-98b5-5c55f91d4d33 | | is_public | True | | name | gpfs | | os-volume-type-access:is_public | True | | properties | volume_backend_name='GPFS' | | qos_specs_id | None | +---------------------------------+--------------------------------------+
Gestione di Volumi ed Istanze
Creazione di un volume Cinder da un'immagine Glance
- Creare il volume fromimage00 dell'immagine caricata su glance
- Mostrare la tipologia gpfs (clone,snapshot,regular file) del volume file creato ed identificare l'eventuale file padre tramite l'inode
Comandi da utilizzare: openstack volume create, openstack volume list, mmclone, ls -lsi
root@stack-group-00:~# openstack volume create --image debian-8.6.0-openstack-amd64.raw --type gpfs --size 4 fromimage00 +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2016-10-02T16:00:24.614262 | | description | None | | encrypted | False | | id | 475821a2-2fc7-40d6-8b2c-ff737f87eb60 | | migration_status | None | | multiattach | False | | name | fromimage00 | | properties | | | replication_status | disabled | | size | 4 | | snapshot_id | None | | source_volid | None | | status | creating | | type | gpfs | | updated_at | None | | user_id | f85114ed0d1545a6a56b6391619f9a15 | +---------------------+--------------------------------------+
root@stack-group-00:~# mmclone show /gpfs/openstack/cinder/volumes/* Parent Depth Parent inode File name ------ ----- -------------- --------- no 1 148226 /gpfs/openstack/cinder/volumes/volume-475821a2-2fc7-40d6-8b2c-ff737f87eb60
root@stack-group-00:~# ls -lsi /gpfs/openstack/cinder/volumes/ total 0 148233 0 -rw-rw---- 1 root root 10737418240 ott 2 18:00 volume-475821a2-2fc7-40d6-8b2c-ff737f87eb60
root@stack-group-00:~# ls -lsi /gpfs/openstack/glance/images/ total 8388608 148226 8388608 -rw-r----- 2 glance glance 8589934592 ott 2 16:21 5736c4c9-0697-4ccf-acfe-17a42593dcda
Creazione di un'istanza da un'immagine glance
Senza utilizzare il driver GPFS
- Lanciare un'istanza partendo dall'immagine Glance caricata in precdeenza
- Verificare la modalita' con cui vengono creati sul filesystem i dischi della macchina virtuale.
Comandi da utilizzare: openstack image list, openstack flavor list, nova boot
root@stack-group-00:~# openstack image list +--------------------------------------+-----------------------------------+--------+ | ID | Name | Status | +--------------------------------------+-----------------------------------+--------+ | 5736c4c9-0697-4ccf-acfe-17a42593dcda | debian-8.6.0-openstack-amd64.raw | active | +--------------------------------------+-----------------------------------+--------+ root@stack-group-00:~# openstack flavor list +----+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +----+-----------+-------+------+-----------+-------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | | 2 | m1.small | 2048 | 20 | 0 | 1 | True | | 3 | m1.medium | 4096 | 40 | 0 | 2 | True | | 4 | m1.large | 8192 | 80 | 0 | 4 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True | +----+-----------+-------+------+-----------+-------+-----------+ root@stack-group-00:~# nova boot --flavor m1.small --image 5736c4c9-0697-4ccf-acfe-17a42593dcda instance_nogpfs +--------------------------------------+--------------------------------------------------------------------------+ | Property | Value | +--------------------------------------+--------------------------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | | | OS-EXT-SRV-ATTR:host | - | | OS-EXT-SRV-ATTR:hypervisor_hostname | - | | OS-EXT-SRV-ATTR:instance_name | instance-0000000a | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | - | | OS-SRV-USG:terminated_at | - | | accessIPv4 | | | accessIPv6 | | | adminPass | vzJofkin4f4X | | config_drive | | | created | 2016-10-02T17:15:48Z | | flavor | m1.small (2) | | hostId | | | id | 8d719ddd-85f8-4ed1-886f-cd7d2ba435de | | image | debian-8.6.0-openstack-amd64.raw (5736c4c9-0697-4ccf-acfe-17a42593dcda) | | key_name | - | | metadata | {} | | name | instance_nogpfs | | os-extended-volumes:volumes_attached | [] | | progress | 0 | | security_groups | default | | status | BUILD | | tenant_id | d0115388e572440eb53c4a8671fef6ae | | updated | 2016-10-02T17:15:48Z | | user_id | f85114ed0d1545a6a56b6391619f9a15 | +--------------------------------------+--------------------------------------------------------------------------+ root@stack-group-00:~# ls /gpfs/openstack/nova/instances/8d719ddd-85f8-4ed1-886f-cd7d2ba435de -lh total 77M -rw-rw---- 1 libvirt-qemu kvm 42K ott 2 19:16 console.log -rw-r--r-- 1 libvirt-qemu kvm 76M ott 2 19:18 disk -rw-r--r-- 1 nova nova 86 ott 2 19:15 disk.info -rw-r--r-- 1 nova nova 2,6K ott 2 19:15 libvirt.xml root@stack-group-00:~# ls /gpfs/openstack/nova/instances/_base/ -lh total 8,0G -rw-r--r-- 1 libvirt-qemu kvm 8,0G ott 2 19:15 9fae948d955243fdce3fbdf50ccc6ac17f6ccbc4
Utilizzando il driver GPFS
- Lanciare un'istanza partendo dall'immagine Glance caricata in precedenza, creando automaticamente un volume Cinder
- Verificare la modalita' con cui vengono creati sul filesystem i dischi della macchina virtuale.
Comandi da utilizzare: openstack image list, openstack flavor list, nova boot, mmclone
root@stack-group-00:~# openstack image list +--------------------------------------+-----------------------------------+--------+ | ID | Name | Status | +--------------------------------------+-----------------------------------+--------+ | 5736c4c9-0697-4ccf-acfe-17a42593dcda | debian-8.6.0-openstack-amd64.raw | active | +--------------------------------------+-----------------------------------+--------+ root@stack-group-00:~# openstack flavor list +--------------------------------------+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +--------------------------------------+-----------+-------+------+-----------+-------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | | 2 | m1.small | 2048 | 20 | 0 | 1 | True | | 3 | m1.medium | 4096 | 40 | 0 | 2 | True | | 4 | m1.large | 8192 | 80 | 0 | 4 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True | | dbac8379-72f8-4460-9c1a-995316b109e0 | m1.custom | 2048 | 10 | 0 | 1 | True | +--------------------------------------+-----------+-------+------+-----------+-------+-----------+ root@stack-group-00:~# nova boot --flavor m1.small --block-device source=image,id=5736c4c9-0697-4ccf-acfe-17a42593dcda,dest=volume,size=10,shutdown=preserver,bootindex=0 gpfsenable +--------------------------------------+-------------------------------------------------+ | Property | Value | +--------------------------------------+-------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | | | OS-EXT-SRV-ATTR:host | - | | OS-EXT-SRV-ATTR:hypervisor_hostname | - | | OS-EXT-SRV-ATTR:instance_name | instance-00000012 | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | - | | OS-SRV-USG:terminated_at | - | | accessIPv4 | | | accessIPv6 | | | adminPass | JP6j9xPgYXKQ | | config_drive | | | created | 2016-10-02T22:07:17Z | | flavor | m1.small (2) | | hostId | | | id | 6ec2d04b-0866-4b57-8042-e6a562e3b906 | | image | Attempt to boot from volume - no image supplied | | key_name | - | | metadata | {} | | name | gpfsenable | | os-extended-volumes:volumes_attached | [] | | progress | 0 | | security_groups | default | | status | BUILD | | tenant_id | d0115388e572440eb53c4a8671fef6ae | | updated | 2016-10-02T22:07:17Z | | user_id | f85114ed0d1545a6a56b6391619f9a15 | +--------------------------------------+-------------------------------------------------+
root@stack-group-00:~# mmclone show /gpfs/openstack/cinder/volumes/* Parent Depth Parent inode File name ------ ----- -------------- --------- no 1 148226 /gpfs/openstack/cinder/volumes/volume-475821a2-2fc7-40d6-8b2c-ff737f87eb60 no 1 148226 /gpfs/openstack/cinder/volumes/volume-7f8ae699-6a59-424c-befc-728aa0cee907 no 1 148226 /gpfs/openstack/cinder/volumes/volume-906a9380-0c21-4e68-aeb6-e9e9ba8c82ba
Snapshot di un volume via GPFS
- Eseguire lo snapshot del volume fromimage00 chiamandolo snap_fromimage00
- Individuare gli effetti dul filesystem di questa operazione
- Rimuovere lo snapshot: cosa accade ai file su gpfs?
- Rimuovere il volume: cosa accade ora?
root@stack-group-00:~# openstack volume list +--------------------------------------+--------------+-----------+------+-------------------------------------+ | ID | Display Name | Status | Size | Attached to | +--------------------------------------+--------------+-----------+------+-------------------------------------+ | 906a9380-0c21-4e68-aeb6-e9e9ba8c82ba | | in-use | 10 | Attached to gpfsenable on /dev/vda | | 475821a2-2fc7-40d6-8b2c-ff737f87eb60 | fromimage00 | available | 10 | | +--------------------------------------+--------------+-----------+------+-------------------------------------+ root@stack-group-00:~# openstack snapshot create --name snap_fromimage00 475821a2-2fc7-40d6-8b2c-ff737f87eb60 +-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | created_at | 2016-10-03T11:55:23.740898 | | description | None | | id | 4cfaf8cc-ebd2-4de8-96c0-3406177aac2f | | name | snap_fromimage00 | | properties | | | size | 10 | | status | creating | | updated_at | None | | volume_id | 475821a2-2fc7-40d6-8b2c-ff737f87eb60 | +-------------+--------------------------------------+ root@stack-group-00:~# openstack snapshot list +--------------------------------------+------------------+-------------+-----------+------+ | ID | Name | Description | Status | Size | +--------------------------------------+------------------+-------------+-----------+------+ | 4cfaf8cc-ebd2-4de8-96c0-3406177aac2f | snap_fromimage00 | None | available | 10 | +--------------------------------------+------------------+-------------+-----------+------+ root@stack-group-00:~# ls -lsi /gpfs/openstack/ cinder/ glance/ nova/ .snapshots/ root@stack-group-00:~# ls -lsi /gpfs/openstack/cinder/volumes/ total 148480 181267 0 -rw-r----- 2 root root 10737418240 ott 3 13:55 snapshot-4cfaf8cc-ebd2-4de8-96c0-3406177aac2f 148233 0 -rw-rw---- 1 root root 10737418240 ott 2 18:00 volume-475821a2-2fc7-40d6-8b2c-ff737f87eb60 181258 148480 -rw-rw---- 1 libvirt-qemu kvm 10737418240 ott 3 13:03 volume-906a9380-0c21-4e68-aeb6-e9e9ba8c82ba root@stack-group-00:~# mmclone show /gpfs/openstack/cinder/volumes/* Parent Depth Parent inode File name ------ ----- -------------- --------- yes 1 148226 /gpfs/openstack/cinder/volumes/snapshot-4cfaf8cc-ebd2-4de8-96c0-3406177aac2f no 2 181267 /gpfs/openstack/cinder/volumes/volume-475821a2-2fc7-40d6-8b2c-ff737f87eb60 no 1 148226 /gpfs/openstack/cinder/volumes/volume-906a9380-0c21-4e68-aeb6-e9e9ba8c82ba
root@stack-group-00:~# openstack snapshot delete 4cfaf8cc-ebd2-4de8-96c0-3406177aac2f root@stack-group-00:~# openstack snapshot list root@stack-group-00:~# ls -lsi /gpfs/openstack/cinder/volumes/ total 148480 181267 0 -rw-r----- 2 root root 10737418240 ott 3 13:55 snapshot-4cfaf8cc-ebd2-4de8-96c0-3406177aac2f.ts 148233 0 -rw-rw---- 1 root root 10737418240 ott 2 18:00 volume-475821a2-2fc7-40d6-8b2c-ff737f87eb60 181258 148480 -rw-rw---- 1 libvirt-qemu kvm 10737418240 ott 3 13:03 volume-906a9380-0c21-4e68-aeb6-e9e9ba8c82ba
root@stack-group-00:~# openstack volume list +--------------------------------------+--------------+-----------+------+-------------------------------------+ | ID | Display Name | Status | Size | Attached to | +--------------------------------------+--------------+-----------+------+-------------------------------------+ | 906a9380-0c21-4e68-aeb6-e9e9ba8c82ba | | in-use | 10 | Attached to gpfsenable on /dev/vda | | 475821a2-2fc7-40d6-8b2c-ff737f87eb60 | fromimage00 | available | 10 | | +--------------------------------------+--------------+-----------+------+-------------------------------------+ root@stack-group-00:~# openstack volume delete 475821a2-2fc7-40d6-8b2c-ff737f87eb60 root@stack-group-00:~# ls -lsi /gpfs/openstack/cinder/volumes/ total 148480 181258 148480 -rw-rw---- 1 libvirt-qemu kvm 10737418240 ott 3 14:12 volume-906a9380-0c21-4e68-aeb6-e9e9ba8c82ba root@stack-group-00:~# mmclone show /gpfs/openstack/cinder/volumes/* Parent Depth Parent inode File name ------ ----- -------------- --------- no 1 148226 /gpfs/openstack/cinder/volumes/volume-906a9380-0c21-4e68-aeb6-e9e9ba8c82ba