Openstack Installation TTNN » Historique » Version 95
Thomas Pedoussaut, 26/08/2014 14:24
typo
1 | 43 | Laurent GUERBY | {{>toc}} |
---|---|---|---|
2 | 43 | Laurent GUERBY | |
3 | 1 | Mehdi Abaakouk | h1. Openstack Installation TTNN |
4 | 1 | Mehdi Abaakouk | |
5 | 44 | Laurent GUERBY | h2. Liens |
6 | 44 | Laurent GUERBY | |
7 | 44 | Laurent GUERBY | * http://ceph.com/docs/master/rados/operations/cache-tiering/ |
8 | 44 | Laurent GUERBY | * http://ceph.com/docs/master/rados/operations/crush-map/ |
9 | 44 | Laurent GUERBY | |
10 | 3 | Mehdi Abaakouk | h2. Pending upstream fixes: |
11 | 3 | Mehdi Abaakouk | |
12 | 1 | Mehdi Abaakouk | * build-debian-openstack-images, changes should be in next package version: |
13 | 1 | Mehdi Abaakouk | ** Fix extlinux installation on jessie: http://anonscm.debian.org/cgit/openstack/openstack-debian-images.git/commit/?id=1a4ddceb99fb66f42f79e87a183d8e96952e5ac3 |
14 | 1 | Mehdi Abaakouk | ** Fix cloud-init setup with configdrive: http://anonscm.debian.org/cgit/openstack/openstack-debian-images.git/commit/?id=15cce87e2fa15b8952d69fb58711bfa88b21ef87 |
15 | 15 | Mehdi Abaakouk | ** Use Configdrive first for cloud-init: http://anonscm.debian.org/cgit/openstack/openstack-debian-images.git/commit/?id=1b1e1093d5ee525426382ad29b8219ab58f6656d |
16 | 1 | Mehdi Abaakouk | |
17 | 1 | Mehdi Abaakouk | * nova: |
18 | 15 | Mehdi Abaakouk | ** Fix live-migration avec ceph and configdrive:: https://review.openstack.org/#/c/112014/, si la solution est mergé upstream, j'appliquerai le patch au package debian |
19 | 1 | Mehdi Abaakouk | |
20 | 4 | Mehdi Abaakouk | h2. Installation |
21 | 4 | Mehdi Abaakouk | |
22 | 4 | Mehdi Abaakouk | Le setup installé est composé de : |
23 | 4 | Mehdi Abaakouk | |
24 | 4 | Mehdi Abaakouk | * 3 hyperviseurs (compute node) qui contiendront 1 ceph-mon, N ceph-osd, nova-compute (qui lance les VM), neutron-openvswitch-agent (qui configure le réseau des vms) |
25 | 4 | Mehdi Abaakouk | * 1 VM (controler node), qui contient tous les services de management d'openstack (nova, cinder, glance, neutron) |
26 | 4 | Mehdi Abaakouk | |
27 | 4 | Mehdi Abaakouk | Les étapes d'installation sont les suivantes: |
28 | 4 | Mehdi Abaakouk | * Préparation manuelle de la VM de management sur un des hyperviseurs |
29 | 4 | Mehdi Abaakouk | * Installation de ceph et openstack sur toutes les machines avec puppet |
30 | 4 | Mehdi Abaakouk | * Déplacement de la VM de management d'openstack dans openstack. |
31 | 4 | Mehdi Abaakouk | |
32 | 33 | Mehdi Abaakouk | h3. Information sur le puppet master: |
33 | 33 | Mehdi Abaakouk | |
34 | 33 | Mehdi Abaakouk | La conf et modules puppet utilisé par tetaneutral.net ce trouve la: |
35 | 33 | Mehdi Abaakouk | |
36 | 33 | Mehdi Abaakouk | > http://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/puppetmaster |
37 | 33 | Mehdi Abaakouk | > http://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/puppetmaster/revisions/master/entry/manifests/nodes/openstack.pp |
38 | 33 | Mehdi Abaakouk | |
39 | 33 | Mehdi Abaakouk | Seulement c'est 3 classes sont spécifique à tetaneutral, le reste est réutilisable: |
40 | 33 | Mehdi Abaakouk | |
41 | 36 | Mehdi Abaakouk | > class { 'ttnn::server': } |
42 | 36 | Mehdi Abaakouk | > class { 'backup::client': } |
43 | 36 | Mehdi Abaakouk | > class { 'sexymotd': } |
44 | 33 | Mehdi Abaakouk | |
45 | 33 | Mehdi Abaakouk | Les modules qui sont nécessaire pour openstack pour le reste du fichier sont: |
46 | 33 | Mehdi Abaakouk | |
47 | 33 | Mehdi Abaakouk | > https://github.com/puppetlabs/puppetlabs-apache.git |
48 | 33 | Mehdi Abaakouk | > https://github.com/puppetlabs/puppetlabs-apt |
49 | 33 | Mehdi Abaakouk | > https://github.com/stackforge/puppet-ceph.git |
50 | 33 | Mehdi Abaakouk | > https://github.com/stackforge/puppet-cinder.git |
51 | 33 | Mehdi Abaakouk | > https://github.com/puppetlabs/puppetlabs-concat.git |
52 | 33 | Mehdi Abaakouk | > https://github.com/stackforge/puppet-glance.git |
53 | 33 | Mehdi Abaakouk | > https://github.com/stackforge/puppet-horizon.git |
54 | 33 | Mehdi Abaakouk | > https://github.com/puppetlabs/puppetlabs-inifile.git |
55 | 33 | Mehdi Abaakouk | > https://github.com/stackforge/puppet-keystone.git |
56 | 33 | Mehdi Abaakouk | > https://github.com/camptocamp/puppet-kmod.git |
57 | 33 | Mehdi Abaakouk | > https://github.com/saz/puppet-memcached.git |
58 | 33 | Mehdi Abaakouk | > https://github.com/puppetlabs/puppetlabs-mysql.git |
59 | 33 | Mehdi Abaakouk | > https://github.com/stackforge/puppet-neutron.git |
60 | 33 | Mehdi Abaakouk | > https://github.com/stackforge/puppet-nova.git |
61 | 33 | Mehdi Abaakouk | > https://github.com/puppetlabs/puppetlabs-rabbitmq.git |
62 | 33 | Mehdi Abaakouk | > https://github.com/nanliu/puppet-staging.git |
63 | 33 | Mehdi Abaakouk | > https://github.com/puppetlabs/puppetlabs-stdlib.git |
64 | 33 | Mehdi Abaakouk | > https://github.com/duritong/puppet-sysctl.git |
65 | 33 | Mehdi Abaakouk | > https://github.com/puppetlabs/puppetlabs-vcsrepo.git |
66 | 33 | Mehdi Abaakouk | > https://github.com/stackforge/puppet-vswitch.git |
67 | 36 | Mehdi Abaakouk | > https://github.com/puppetlabs/puppetlabs-xinetd.git |
68 | 33 | Mehdi Abaakouk | |
69 | 33 | Mehdi Abaakouk | h3. Préparation réseaux des hosts: |
70 | 29 | Mehdi Abaakouk | |
71 | 31 | Mehdi Abaakouk | Voici le fichier rc.local d'un hyperviseur (g1) |
72 | 29 | Mehdi Abaakouk | |
73 | 29 | Mehdi Abaakouk | <pre> |
74 | 71 | Mehdi Abaakouk | #!/bin/sh |
75 | 71 | Mehdi Abaakouk | |
76 | 29 | Mehdi Abaakouk | for i in /proc/sys/net/ipv6/conf/*; do for j in autoconf accept_ra; do echo 0 > $i/$j; done;done |
77 | 1 | Mehdi Abaakouk | # https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt |
78 | 71 | Mehdi Abaakouk | for i in /proc/sys/net/ipv4/conf/*/arp_announce; do echo 2 > $i;done |
79 | 29 | Mehdi Abaakouk | |
80 | 29 | Mehdi Abaakouk | echo 1 > /proc/sys/net/ipv4/ip_forward |
81 | 29 | Mehdi Abaakouk | echo 1 > /proc/sys/net/ipv6/conf/all/forwarding |
82 | 29 | Mehdi Abaakouk | |
83 | 1 | Mehdi Abaakouk | ip link set eth0 up |
84 | 71 | Mehdi Abaakouk | |
85 | 29 | Mehdi Abaakouk | ip link add link eth0 name eth0.3131 type vlan id 3131 |
86 | 1 | Mehdi Abaakouk | ip link set eth0.3131 up |
87 | 71 | Mehdi Abaakouk | |
88 | 29 | Mehdi Abaakouk | ip addr add 89.234.156.251/32 dev eth0.3131 |
89 | 29 | Mehdi Abaakouk | ip route add 91.224.149.0/24 dev eth0.3131 |
90 | 29 | Mehdi Abaakouk | ip route add default via 91.224.149.254 |
91 | 29 | Mehdi Abaakouk | |
92 | 29 | Mehdi Abaakouk | ip addr add 2a01:6600:8083:fb00::1/56 dev eth0.3131 |
93 | 29 | Mehdi Abaakouk | ip route add default via fe80::31 dev eth0.3131 |
94 | 1 | Mehdi Abaakouk | |
95 | 71 | Mehdi Abaakouk | ip route add 89.234.156.250/32 dev eth0.3131 |
96 | 71 | Mehdi Abaakouk | ip route add 89.234.156.252/32 dev eth0.3131 |
97 | 71 | Mehdi Abaakouk | ip route add 89.234.156.253/32 dev eth0.3131 |
98 | 71 | Mehdi Abaakouk | |
99 | 71 | Mehdi Abaakouk | |
100 | 45 | Mehdi Abaakouk | ip link add link eth0 name eth0.3175 type vlan id 3175 |
101 | 29 | Mehdi Abaakouk | ip link set eth0.3175 up |
102 | 29 | Mehdi Abaakouk | |
103 | 39 | Mehdi Abaakouk | ip link add link eth0 name eth0.3195 type vlan id 3195 |
104 | 1 | Mehdi Abaakouk | ip link set eth0.3195 up |
105 | 71 | Mehdi Abaakouk | brctl addbr br-admin |
106 | 71 | Mehdi Abaakouk | brctl addif eth0.3175 |
107 | 71 | Mehdi Abaakouk | ip link set br-admin up |
108 | 1 | Mehdi Abaakouk | ip addr add 192.168.3.101/24 dev br-admin |
109 | 1 | Mehdi Abaakouk | |
110 | 71 | Mehdi Abaakouk | brctl addbr br-net |
111 | 71 | Mehdi Abaakouk | ip link set br-net up |
112 | 29 | Mehdi Abaakouk | ip addr add fe80::31/64 dev br-net |
113 | 71 | Mehdi Abaakouk | ip addr add 91.224.148.0/32 dev br-net |
114 | 29 | Mehdi Abaakouk | |
115 | 29 | Mehdi Abaakouk | exit 0 |
116 | 71 | Mehdi Abaakouk | |
117 | 29 | Mehdi Abaakouk | </pre> |
118 | 55 | Mehdi Abaakouk | |
119 | 54 | Mehdi Abaakouk | _note: Les bridges openvswitch sont mémorisés et recréés automatiquement par le service openvswitch-switch_ |
120 | 30 | Mehdi Abaakouk | |
121 | 30 | Mehdi Abaakouk | Sur h7.tetaneutral.net le routage est le suivant |
122 | 30 | Mehdi Abaakouk | |
123 | 30 | Mehdi Abaakouk | <pre> |
124 | 30 | Mehdi Abaakouk | ip route add 89.234.156.251/32 dev eth0.3131 |
125 | 30 | Mehdi Abaakouk | ip route add 89.234.156.252/32 dev eth0.3131 |
126 | 30 | Mehdi Abaakouk | ip route add 89.234.156.253/32 dev eth0.3131 |
127 | 30 | Mehdi Abaakouk | ip route add 2a01:6600:8083:fb00::/56 dev eth0.3131 |
128 | 30 | Mehdi Abaakouk | ip route add 2a01:6600:8083:fc00::/56 dev eth0.3131 |
129 | 30 | Mehdi Abaakouk | ip route add 2a01:6600:8083:fd00::/56 dev eth0.3131 |
130 | 30 | Mehdi Abaakouk | </pre> |
131 | 30 | Mehdi Abaakouk | |
132 | 30 | Mehdi Abaakouk | Ainsi que ceci le temps de l'installation |
133 | 30 | Mehdi Abaakouk | |
134 | 30 | Mehdi Abaakouk | <pre> |
135 | 74 | Mehdi Abaakouk | ip route add 89.234.156.248/32 via 89.234.156.251 # NOTE(sileht): temporairement pour le setup openstack |
136 | 74 | Mehdi Abaakouk | ip route add 2a01:6600:8083:f800::/56 via 2a01:6600:8083:fb00::1 dev eth0.3131 # NOTE(sileht): temporairement pour le setup openstack |
137 | 30 | Mehdi Abaakouk | </pre> |
138 | 4 | Mehdi Abaakouk | |
139 | 4 | Mehdi Abaakouk | h3. Preparation de la VM de management, le controlleur |
140 | 6 | Mehdi Abaakouk | |
141 | 4 | Mehdi Abaakouk | h4. Installation des prérequis |
142 | 4 | Mehdi Abaakouk | |
143 | 57 | Mehdi Abaakouk | <pre> |
144 | 89 | Mehdi Abaakouk | $ apt-get install libvirt-bin openstack-debian-images virtinst openvswitch-switch |
145 | 4 | Mehdi Abaakouk | #NOTE(sileht): temporairement appliquer les patches de au-dessus à openstack-debian-images |
146 | 4 | Mehdi Abaakouk | </pre> |
147 | 6 | Mehdi Abaakouk | |
148 | 1 | Mehdi Abaakouk | h4. Preparation de l'image de la VM |
149 | 1 | Mehdi Abaakouk | |
150 | 73 | Mehdi Abaakouk | On notera les ip temporaire 192.168.3.100 |
151 | 73 | Mehdi Abaakouk | |
152 | 6 | Mehdi Abaakouk | <pre> |
153 | 17 | Mehdi Abaakouk | $ vim hook.sh |
154 | 16 | Mehdi Abaakouk | set -xv |
155 | 1 | Mehdi Abaakouk | |
156 | 20 | Mehdi Abaakouk | echo "openstack" > $BODI_CHROOT_PATH/etc/hostname |
157 | 16 | Mehdi Abaakouk | |
158 | 16 | Mehdi Abaakouk | cat > $BODI_CHROOT_PATH/etc/resolv.conf <<EOF |
159 | 16 | Mehdi Abaakouk | domain tetaneutral.net |
160 | 16 | Mehdi Abaakouk | search tetaneutral.net |
161 | 1 | Mehdi Abaakouk | nameserver 8.8.8.8 |
162 | 20 | Mehdi Abaakouk | EOF |
163 | 6 | Mehdi Abaakouk | |
164 | 6 | Mehdi Abaakouk | cat > $BODI_CHROOT_PATH/etc/network/interfaces <<EOF |
165 | 6 | Mehdi Abaakouk | auto lo |
166 | 1 | Mehdi Abaakouk | iface lo inet loopback |
167 | 6 | Mehdi Abaakouk | auto eth0 |
168 | 20 | Mehdi Abaakouk | iface eth0 inet manual |
169 | 20 | Mehdi Abaakouk | pre-up /sbin/sysctl -w net.ipv6.conf.eth0.accept_ra=0 |
170 | 1 | Mehdi Abaakouk | pre-up /sbin/sysctl -w net.ipv6.conf.eth0.autoconf=0 |
171 | 1 | Mehdi Abaakouk | up ip link set eth0 up |
172 | 92 | Mehdi Abaakouk | up ip addr add 89.234.156.249/32 dev eth0 |
173 | 20 | Mehdi Abaakouk | up ip route add 91.224.148.0/32 dev eth0 |
174 | 20 | Mehdi Abaakouk | up ip route add default via 91.224.148.0 |
175 | 20 | Mehdi Abaakouk | |
176 | 20 | Mehdi Abaakouk | iface eth0 inet6 static |
177 | 1 | Mehdi Abaakouk | pre-up /sbin/sysctl -w net.ipv6.conf.eth0.accept_ra=0 |
178 | 20 | Mehdi Abaakouk | pre-up /sbin/sysctl -w net.ipv6.conf.eth0.autoconf=0 |
179 | 92 | Mehdi Abaakouk | address 2a01:6600:8083:f900::1 |
180 | 40 | Mehdi Abaakouk | netmask 56 |
181 | 46 | Mehdi Abaakouk | gateway fe80::31 |
182 | 46 | Mehdi Abaakouk | |
183 | 46 | Mehdi Abaakouk | auto eth1 |
184 | 1 | Mehdi Abaakouk | iface eth1 inet static |
185 | 46 | Mehdi Abaakouk | pre-up /sbin/sysctl -w net.ipv6.conf.eth1.accept_ra=0 |
186 | 46 | Mehdi Abaakouk | pre-up /sbin/sysctl -w net.ipv6.conf.eth1.autoconf=0 |
187 | 92 | Mehdi Abaakouk | address 192.168.3.100 |
188 | 6 | Mehdi Abaakouk | netmask 255.255.255.0 |
189 | 20 | Mehdi Abaakouk | EOF |
190 | 1 | Mehdi Abaakouk | |
191 | 6 | Mehdi Abaakouk | mkdir -p $BODI_CHROOT_PATH/root/.ssh |
192 | 4 | Mehdi Abaakouk | chmod 600 $BODI_CHROOT_PATH/root/.ssh |
193 | 1 | Mehdi Abaakouk | cat >> $BODI_CHROOT_PATH/root/.ssh/authorized_keys <<EOF |
194 | 4 | Mehdi Abaakouk | ssh-dss AAAAB3NzaC1kc3MAAACBAJtnGLvuz4uVD6fnERDxDi/C0UyzwCiKmgNtEessopREYasAX4Gu6Fg10jAyIL5Nuc7YDnqj//pOfxNjD7hp99a2ZmkRQgh/ltClxYML9fqhBHgsUCpVse9nOYDHDnDgvXIPRSDUHat2UFpdchHVrFURNLIlZnBztsr+GCDURTV/AAAAFQD9SrBcH49ltaKOm6V5ssCPmgs1SwAAAIAbAvkQ3/tMzzdACO5B9s5Yb3ZuM7XImm0iqufivVf2Xy39g8HOBulUsN7eKEGPhVriqNolgIO7q7tVgYAff4/NE4yDP0Kp0SPg4tjt2yFJuL31Y3wzwHjnKrjgNlDSLl3uZnRXSipwUMwGKbdHB6NZSqlq192VKbHilQ00pbiMlAAAAIB5dfB1lVHkJ0o5CcaVQRPbca9DvbbRwnoTSmKHc5DUcqsPqDhS07CkM9ZcJuY1Nh4wGl4Q9kArj7Tnsvvygf/HReSUcIk4+nbDytJ8/pca/Qx4fzQQyppa94TylN62LSFT6MIJKLoMwYa0dQURT7Mv5+9Qj2vk5pZ38w2iQ9zVCg== root@h1 |
195 | 10 | Mehdi Abaakouk | EOF |
196 | 16 | Mehdi Abaakouk | |
197 | 16 | Mehdi Abaakouk | sed -i -e 's/^.*Port.*$/Port 2222/' -e 's/^[# ]*PasswordAuthentication.*$/PasswordAuthentication no/' $BODI_CHROOT_PATH/etc/ssh/sshd_config |
198 | 20 | Mehdi Abaakouk | chroot $BODI_CHROOT_PATH dpkg-reconfigure openssh-server |
199 | 1 | Mehdi Abaakouk | chroot $BODI_CHROOT_PATH apt-get purge -y cloud-init* |
200 | 7 | Mehdi Abaakouk | </pre> |
201 | 4 | Mehdi Abaakouk | |
202 | 21 | Mehdi Abaakouk | <pre> |
203 | 12 | Mehdi Abaakouk | $ chmod +x hook.sh |
204 | 4 | Mehdi Abaakouk | $ build-openstack-debian-image --image-size 20 --release jessie -u http://apt.tetaneutral.net/debian/ -s http://apt.tetaneutral.net/debian/ --hook-script $(pwd)/hook.sh |
205 | 4 | Mehdi Abaakouk | $ mv debian-jessie-7.0.0-3-amd64.raw /openstack.raw |
206 | 4 | Mehdi Abaakouk | $ rm debian-jessie-7.0.0-3-amd64.qcow2 |
207 | 5 | Mehdi Abaakouk | </pre> |
208 | 13 | Mehdi Abaakouk | |
209 | 18 | Mehdi Abaakouk | _note: la derniere commande lancée par le script doit être 'qemu-img convert -c -f raw .... , sinon l'image de bootera pas_ |
210 | 18 | Mehdi Abaakouk | _note(jessie): si l'erreur est celle ci-dessous, relancer manuellement 'kpartx -d debian-jessie-7.0.0-3-amd64.raw' jusqu'a ce que l'erreur disparaissent et le .raw est utilisable:_ |
211 | 18 | Mehdi Abaakouk | <pre> |
212 | 18 | Mehdi Abaakouk | + 'kpartx -d debian-jessie-7.0.0-3-amd64.raw' |
213 | 18 | Mehdi Abaakouk | device-mapper: remove ioctl on loop0p1 failed: Device or resource busy |
214 | 18 | Mehdi Abaakouk | loop deleted : /dev/loop0 |
215 | 59 | Mehdi Abaakouk | </pre> |
216 | 59 | Mehdi Abaakouk | _note: si parted freeze -> lancer /etc/init.d/udev restart_ |
217 | 11 | Mehdi Abaakouk | |
218 | 4 | Mehdi Abaakouk | |
219 | 4 | Mehdi Abaakouk | On garde l'image raw qui sera importable dans ceph plus tard et on la mets à la racine pour qui l'utilisateur libvirt puisse y accéder. |
220 | 6 | Mehdi Abaakouk | |
221 | 4 | Mehdi Abaakouk | h4. Préparation du réseau |
222 | 4 | Mehdi Abaakouk | |
223 | 8 | Mehdi Abaakouk | <pre> |
224 | 1 | Mehdi Abaakouk | $ modprobe vhost-net |
225 | 90 | Mehdi Abaakouk | $ ovs-vsctl add-br br-net |
226 | 90 | Mehdi Abaakouk | $ ip link set br-net up |
227 | 90 | Mehdi Abaakouk | $ ovs-vsctl br-set-external-id br-net bridge-id br-net |
228 | 90 | Mehdi Abaakouk | $ ip link set br-admin up |
229 | 90 | Mehdi Abaakouk | $ ovs-vsctl br-set-external-id br-net bridge-id br-admin |
230 | 90 | Mehdi Abaakouk | $ ovs-vsctl add-port br-admin eth0.3175 |
231 | 90 | Mehdi Abaakouk | $ ip addr add 192.168.3.101/24 dev br-admin |
232 | 90 | Mehdi Abaakouk | $ ip addr add fe80::31/64 dev br-net |
233 | 90 | Mehdi Abaakouk | $ ip route add 89.234.156.249/32 dev br-net |
234 | 90 | Mehdi Abaakouk | $ ip -6 route add 2a01:6600:8083:f900::/56 dev br-net |
235 | 5 | Mehdi Abaakouk | </pre> |
236 | 6 | Mehdi Abaakouk | |
237 | 4 | Mehdi Abaakouk | h4. Installation de la VM |
238 | 4 | Mehdi Abaakouk | |
239 | 60 | Mehdi Abaakouk | <pre> |
240 | 4 | Mehdi Abaakouk | $ virt-install --name openstack --ram 2048 --network bridge=br-net,model=virtio --network bridge=br-admin,model=virtio --nographics --serial pty --wait -1 --noreboot --autostart --disk /openstack.raw,bus=virtio,cache=none,io=native --import |
241 | 91 | Mehdi Abaakouk | $ EDITOR="sed -i -e \"s,<source bridge='br-net'/>,<source bridge='br-net'/><virtualport type='openvswitch' />,g\"" virsh edit openstack # Openvswitch is not yet supported by virt-install |
242 | 91 | Mehdi Abaakouk | $ EDITOR="sed -i -e \"s,<source bridge='br-admin'/>,<source bridge='br-admin'/><virtualport type='openvswitch' />,g\"" virsh edit openstack # Openvswitch is not yet supported by virt-install |
243 | 19 | Mehdi Abaakouk | $ virsh start openstack |
244 | 93 | Mehdi Abaakouk | $ ssh root@89.234.156.249 -p 2222 |
245 | 19 | Mehdi Abaakouk | </pre> |
246 | 19 | Mehdi Abaakouk | |
247 | 19 | Mehdi Abaakouk | Une fois connecté à la VM: |
248 | 19 | Mehdi Abaakouk | |
249 | 19 | Mehdi Abaakouk | <pre> |
250 | 19 | Mehdi Abaakouk | $ apt-get install puppet |
251 | 24 | Mehdi Abaakouk | $ puppet agent --enable |
252 | 24 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
253 | 24 | Mehdi Abaakouk | Info: Caching certificate for ca |
254 | 24 | Mehdi Abaakouk | Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml |
255 | 24 | Mehdi Abaakouk | Info: Creating a new SSL certificate request for openstack.tetaneutral.net |
256 | 24 | Mehdi Abaakouk | Info: Certificate Request fingerprint (SHA256): AE:72:47:40:A0:E2:F4:59:BA:39:FA:3D:C2:A7:C9:1B:9F:87:A5:B7:65:3A:F9:D4:DE:AF:E2:A3:02:41:0F:2E |
257 | 24 | Mehdi Abaakouk | Info: Caching certificate for ca |
258 | 19 | Mehdi Abaakouk | Exiting; no certificate found and waitforcert is disabled |
259 | 19 | Mehdi Abaakouk | </pre> |
260 | 19 | Mehdi Abaakouk | |
261 | 19 | Mehdi Abaakouk | Sur le puppetmaster: |
262 | 19 | Mehdi Abaakouk | |
263 | 1 | Mehdi Abaakouk | <pre> |
264 | 22 | Mehdi Abaakouk | $ puppet ca sign openstack.tetaneutral.net |
265 | 61 | Mehdi Abaakouk | </pre> |
266 | 87 | Mehdi Abaakouk | _note: si un vieux cert existe: puppet ca revoke openstack.tetaneutral.net ; puppet cert clean openstack.tetaneutral.net; puppet node clean openstack.tetaneutral.net_ |
267 | 1 | Mehdi Abaakouk | |
268 | 19 | Mehdi Abaakouk | De nouveau sur la VM: |
269 | 19 | Mehdi Abaakouk | |
270 | 24 | Mehdi Abaakouk | <pre> |
271 | 26 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
272 | 26 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
273 | 4 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
274 | 26 | Mehdi Abaakouk | </pre> |
275 | 32 | Mehdi Abaakouk | |
276 | 26 | Mehdi Abaakouk | Il ne doit plus y avoir d'erreur la 3°/4° fois. |
277 | 34 | Mehdi Abaakouk | |
278 | 34 | Mehdi Abaakouk | h3. Configuration des hyperviseurs |
279 | 35 | Mehdi Abaakouk | |
280 | 94 | Mehdi Abaakouk | Une fois la configuration réseau faite, tout ce fait avec puppet: |
281 | 35 | Mehdi Abaakouk | |
282 | 35 | Mehdi Abaakouk | <pre> |
283 | 35 | Mehdi Abaakouk | $ apt-get install puppet |
284 | 35 | Mehdi Abaakouk | $ puppet agent --enable |
285 | 35 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
286 | 35 | Mehdi Abaakouk | Info: Caching certificate for ca |
287 | 35 | Mehdi Abaakouk | Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml |
288 | 35 | Mehdi Abaakouk | Info: Creating a new SSL certificate request for openstack.tetaneutral.net |
289 | 35 | Mehdi Abaakouk | Info: Certificate Request fingerprint (SHA256): AE:72:47:40:A0:E2:F4:59:BA:39:FA:3D:C2:A7:C9:1B:9F:87:A5:B7:65:3A:F9:D4:DE:AF:E2:A3:02:41:0F:2E |
290 | 35 | Mehdi Abaakouk | Info: Caching certificate for ca |
291 | 35 | Mehdi Abaakouk | Exiting; no certificate found and waitforcert is disabled |
292 | 35 | Mehdi Abaakouk | </pre> |
293 | 35 | Mehdi Abaakouk | |
294 | 35 | Mehdi Abaakouk | Sur le puppetmaster: |
295 | 35 | Mehdi Abaakouk | |
296 | 35 | Mehdi Abaakouk | <pre> |
297 | 35 | Mehdi Abaakouk | $ puppet ca sign openstack.tetaneutral.net |
298 | 64 | Mehdi Abaakouk | </pre> |
299 | 35 | Mehdi Abaakouk | _note: si un vieux cert existe: puppet ca revoke openstack.tetaneutral.net ; puppet cert clean openstack.tetaneutral.net; puppet node clean openstack.tetaneutral.net_ |
300 | 35 | Mehdi Abaakouk | |
301 | 35 | Mehdi Abaakouk | De nouveau sur la VM: |
302 | 35 | Mehdi Abaakouk | |
303 | 35 | Mehdi Abaakouk | <pre> |
304 | 35 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
305 | 35 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
306 | 35 | Mehdi Abaakouk | $ puppet agent -vt --server puppet.tetaneutral.net --certname openstack.tetaneutral.net --pluginsync |
307 | 35 | Mehdi Abaakouk | </pre> |
308 | 35 | Mehdi Abaakouk | |
309 | 35 | Mehdi Abaakouk | Il ne doit plus y avoir d'erreur la 3°/4° fois. |
310 | 35 | Mehdi Abaakouk | |
311 | 35 | Mehdi Abaakouk | |
312 | 35 | Mehdi Abaakouk | h4. Information sur la configuration d'un hyperviseur sur le puppet master |
313 | 35 | Mehdi Abaakouk | |
314 | 35 | Mehdi Abaakouk | La configuration ressemble à : |
315 | 35 | Mehdi Abaakouk | |
316 | 35 | Mehdi Abaakouk | <pre> |
317 | 35 | Mehdi Abaakouk | node "gX.tetaneutral.net" inherits openstack_node_common { |
318 | 35 | Mehdi Abaakouk | # Configuration du routerid et de l'AS number de cette machine |
319 | 35 | Mehdi Abaakouk | # Il faut aussi mettre la conf bgp de h7 ainsi que les fichiers |
320 | 35 | Mehdi Abaakouk | # /etc/puppet/manifests/files/openstack-bird.conf.erb et |
321 | 35 | Mehdi Abaakouk | # /etc/puppet/manifests/files/openstack-bird6.conf.erb |
322 | 35 | Mehdi Abaakouk | # pour ajouter cette AS interne |
323 | 35 | Mehdi Abaakouk | ttnn_os_bird {'198.51.100.1': asnum => "65001"} |
324 | 35 | Mehdi Abaakouk | |
325 | 35 | Mehdi Abaakouk | # Dans le cas d'une moniteur ceph, mais uniquement 3 suffissent, on a déjà g1,g2,g3 |
326 | 35 | Mehdi Abaakouk | # ttnn_ceph_mon {$::hostname:} |
327 | 35 | Mehdi Abaakouk | |
328 | 35 | Mehdi Abaakouk | # La liste des disques dur à utiliser dans ceph |
329 | 35 | Mehdi Abaakouk | ttnn_ceph_osd {"/dev/sdb": } |
330 | 35 | Mehdi Abaakouk | ttnn_ceph_osd {"/dev/sdc": } |
331 | 35 | Mehdi Abaakouk | |
332 | 49 | Mehdi Abaakouk | # La partie Openstack, l'uuid doit être unique par machine (générer avec uuid-gen) |
333 | 35 | Mehdi Abaakouk | ttnn_os_compute {"9d26ec10-a48b-4f0f-a122-f10ed16d270f": } |
334 | 35 | Mehdi Abaakouk | |
335 | 35 | Mehdi Abaakouk | # La correction d'un petit bug :) |
336 | 1 | Mehdi Abaakouk | class {'ttnn_os_configdrive_ceph_fix': } |
337 | 37 | Mehdi Abaakouk | } |
338 | 37 | Mehdi Abaakouk | </pre> |
339 | 37 | Mehdi Abaakouk | |
340 | 72 | Mehdi Abaakouk | h3. Déplacement du controlleur dans openstack (Work In Progress) |
341 | 37 | Mehdi Abaakouk | |
342 | 88 | Mehdi Abaakouk | Générer d'abort une image debian jessie |
343 | 88 | Mehdi Abaakouk | |
344 | 38 | Mehdi Abaakouk | <pre> |
345 | 38 | Mehdi Abaakouk | $ cat > os.conf <<EOF |
346 | 82 | Mehdi Abaakouk | export OS_AUTH_URL=http://89.234.156.248:5000/v2.0/ |
347 | 38 | Mehdi Abaakouk | export OS_USERNAME=admin |
348 | 38 | Mehdi Abaakouk | export OS_TENANT_NAME=ttnn_admin |
349 | 38 | Mehdi Abaakouk | export OS_PASSWORD=<password> |
350 | 1 | Mehdi Abaakouk | EOF |
351 | 1 | Mehdi Abaakouk | $ source os.conf |
352 | 88 | Mehdi Abaakouk | $ glance image-create --progress --name debian-jessie-7.0.0-3-amd64 --disk-format raw --container-format bare < debian-jessie-7.0.0-3-amd64.raw |
353 | 88 | Mehdi Abaakouk | # glance image-list | grep jessie |
354 | 88 | Mehdi Abaakouk | | c81df9d4-8786-4f77-b84b-8409f1f11018 | debian-jessie-7.0.0-3-amd64 | raw | bare | 1073741824 | active | |
355 | 41 | Mehdi Abaakouk | $ netid_net=$(neutron net-list | awk '/ttnn-net/{print $2}') |
356 | 41 | Mehdi Abaakouk | $ netid_admin=$(neutron net-list | awk '/ttnn-admin/{print $2}') |
357 | 88 | Mehdi Abaakouk | $ nova boot --nic net-id=$netid_net,v4-fixed-ip=89.234.156.249 --nic net-id=$netid_admin,v4-fixed-ip=192.168.3.100 --block-device source=image,id=c81df9d4-8786-4f77-b84b-8409f1f11018,shutdown=preserve,dest=volume,bootindex=0,size=50 --flavor m1.medium --poll openstack.tetaneutral.net --config-drive false |
358 | 88 | Mehdi Abaakouk | +--------------------------------------+-------------------------------------------------+ |
359 | 88 | Mehdi Abaakouk | | Property | Value | |
360 | 88 | Mehdi Abaakouk | +--------------------------------------+-------------------------------------------------+ |
361 | 88 | Mehdi Abaakouk | | OS-DCF:diskConfig | MANUAL | |
362 | 88 | Mehdi Abaakouk | | OS-EXT-AZ:availability_zone | nova | |
363 | 88 | Mehdi Abaakouk | | OS-EXT-SRV-ATTR:host | - | |
364 | 88 | Mehdi Abaakouk | | OS-EXT-SRV-ATTR:hypervisor_hostname | - | |
365 | 88 | Mehdi Abaakouk | | OS-EXT-SRV-ATTR:instance_name | instance-0000000b | |
366 | 88 | Mehdi Abaakouk | | OS-EXT-STS:power_state | 0 | |
367 | 88 | Mehdi Abaakouk | | OS-EXT-STS:task_state | scheduling | |
368 | 88 | Mehdi Abaakouk | | OS-EXT-STS:vm_state | building | |
369 | 88 | Mehdi Abaakouk | | OS-SRV-USG:launched_at | - | |
370 | 88 | Mehdi Abaakouk | | OS-SRV-USG:terminated_at | - | |
371 | 88 | Mehdi Abaakouk | | accessIPv4 | | |
372 | 88 | Mehdi Abaakouk | | accessIPv6 | | |
373 | 88 | Mehdi Abaakouk | | adminPass | | |
374 | 88 | Mehdi Abaakouk | | config_drive | | |
375 | 88 | Mehdi Abaakouk | | created | 2014-08-26T09:19:34Z | |
376 | 88 | Mehdi Abaakouk | | flavor | m1.medium (3) | |
377 | 88 | Mehdi Abaakouk | | hostId | | |
378 | 88 | Mehdi Abaakouk | | id | 899b93b2-d5a0-4531-9f92-0b8103755fda | |
379 | 88 | Mehdi Abaakouk | | image | Attempt to boot from volume - no image supplied | |
380 | 88 | Mehdi Abaakouk | | key_name | - | |
381 | 88 | Mehdi Abaakouk | | metadata | {} | |
382 | 88 | Mehdi Abaakouk | | name | openstack.tetaneutral.net | |
383 | 88 | Mehdi Abaakouk | | os-extended-volumes:volumes_attached | [] | |
384 | 88 | Mehdi Abaakouk | | progress | 0 | |
385 | 88 | Mehdi Abaakouk | | security_groups | default | |
386 | 88 | Mehdi Abaakouk | | status | BUILD | |
387 | 88 | Mehdi Abaakouk | | tenant_id | 700f4abd173f472499a934eacf9730bd | |
388 | 88 | Mehdi Abaakouk | | updated | 2014-08-26T09:19:35Z | |
389 | 88 | Mehdi Abaakouk | | user_id | f5603324b48542eca4c34d3a32d725cb | |
390 | 88 | Mehdi Abaakouk | +--------------------------------------+-------------------------------------------------+ |
391 | 88 | Mehdi Abaakouk | Server building... 0% complete |
392 | 66 | Mehdi Abaakouk | </pre> |
393 | 68 | Mehdi Abaakouk | |
394 | 68 | Mehdi Abaakouk | h2. Preparation du Pool SSD pour ceph |
395 | 68 | Mehdi Abaakouk | |
396 | 68 | Mehdi Abaakouk | |
397 | 68 | Mehdi Abaakouk | h3. Cas particulier du SSD ou ce trouve l'OS |
398 | 68 | Mehdi Abaakouk | |
399 | 68 | Mehdi Abaakouk | En général avec ceph, on donne un disque, ceph créé 2 partitions une pour le journal de l'OSD, l'autre pour les datas |
400 | 68 | Mehdi Abaakouk | mais pour le SSD de tetaneutral qui a aussi l'OS, voici la méthode |
401 | 68 | Mehdi Abaakouk | |
402 | 68 | Mehdi Abaakouk | Création manuelle de la partition de data ceph /dev/sda2 ici |
403 | 68 | Mehdi Abaakouk | |
404 | 68 | Mehdi Abaakouk | <pre> |
405 | 68 | Mehdi Abaakouk | $ fdisk /dev/sda |
406 | 68 | Mehdi Abaakouk | |
407 | 68 | Mehdi Abaakouk | n |
408 | 68 | Mehdi Abaakouk | p |
409 | 68 | Mehdi Abaakouk | <enter> |
410 | 68 | Mehdi Abaakouk | <enter> |
411 | 68 | Mehdi Abaakouk | <enter> |
412 | 68 | Mehdi Abaakouk | <enter> |
413 | 68 | Mehdi Abaakouk | w |
414 | 68 | Mehdi Abaakouk | |
415 | 68 | Mehdi Abaakouk | $ partprobe |
416 | 68 | Mehdi Abaakouk | </pre> |
417 | 68 | Mehdi Abaakouk | |
418 | 68 | Mehdi Abaakouk | On ajoute dans la configuration puppet de l'hyperviseur ceci, avec le journal sur la partition de l'OS: |
419 | 68 | Mehdi Abaakouk | |
420 | 68 | Mehdi Abaakouk | <pre> |
421 | 68 | Mehdi Abaakouk | ttnn_ceph_osd {"/dev/sda2": journal => "/var/lib/ceph/ssd-sda2-journal"} |
422 | 68 | Mehdi Abaakouk | </pre> |
423 | 34 | Mehdi Abaakouk | |
424 | 69 | Mehdi Abaakouk | |
425 | 69 | Mehdi Abaakouk | h3. Configuration de la crushmap de ceph: |
426 | 69 | Mehdi Abaakouk | |
427 | 69 | Mehdi Abaakouk | REF: http://ceph.com/docs/master/rados/operations/crush-map/#getcrushmap |
428 | 69 | Mehdi Abaakouk | |
429 | 69 | Mehdi Abaakouk | <pre> |
430 | 69 | Mehdi Abaakouk | $ ceph osd getcrushmap -o compiled-crushmap |
431 | 69 | Mehdi Abaakouk | $ crushtool -d compiled-crushmap -o crushmap.txt |
432 | 69 | Mehdi Abaakouk | # EDIT crushmap.txt |
433 | 69 | Mehdi Abaakouk | $ crushtool -c crushmap.txt -o compiled-crushmap |
434 | 69 | Mehdi Abaakouk | $ ceph osd setcrushmap -i compiled-crushmap |
435 | 69 | Mehdi Abaakouk | </pre> |
436 | 69 | Mehdi Abaakouk | |
437 | 69 | Mehdi Abaakouk | h3. Definition de la crushmap de ttnn |
438 | 69 | Mehdi Abaakouk | |
439 | 81 | Mehdi Abaakouk | Chaque machine se trouve dans 2 hosts, un host SSD et un host HARDDISK (même si en réalité les deux sont sur la même machine physique), |
440 | 69 | Mehdi Abaakouk | |
441 | 79 | Mehdi Abaakouk | Ensuite on créé 2 object root un pour les hosts SSD et un autre pour les host HARDDISK |
442 | 69 | Mehdi Abaakouk | |
443 | 79 | Mehdi Abaakouk | On créé ensuite 2 règles de stockage une qui envoie les objects vers le root SSD et l'autre vers le root HARDDISK |
444 | 69 | Mehdi Abaakouk | |
445 | 81 | Mehdi Abaakouk | Cela permettra d'avoir de définir une règle différente suivant les pools ceph. |
446 | 69 | Mehdi Abaakouk | |
447 | 79 | Mehdi Abaakouk | Niveau Openstack nous avons 4 pools: |
448 | 81 | Mehdi Abaakouk | * nova: que nous n'allons pas utilisé mais que nova utilise pour stocker quelles fichiers pour le boot des VMs. (Il normalement utilisé si on créé pas préalablement de volume) |
449 | 79 | Mehdi Abaakouk | * cinder: ce pool sera le pool par défaut de création des disques |
450 | 95 | Thomas Pedoussaut | * cinder-ssd: sera le pool sur le quel on applique la politique de stockage numero 1 |
451 | 1 | Mehdi Abaakouk | * glance: c'est la que seront stocké les images de VMs. |
452 | 79 | Mehdi Abaakouk | |
453 | 81 | Mehdi Abaakouk | Une fois la crushmap modifié on applique la règle sur le pool cinder-ssd: |
454 | 1 | Mehdi Abaakouk | |
455 | 81 | Mehdi Abaakouk | <pre> |
456 | 84 | Mehdi Abaakouk | ceph osd pool set cinder-ssd crush_ruleset 1 |
457 | 81 | Mehdi Abaakouk | </pre> |
458 | 81 | Mehdi Abaakouk | |
459 | 81 | Mehdi Abaakouk | Il faut ensuite attendre que ceph redistribue les data comme on lui a demandé, on peut suivre l'avancement avec : |
460 | 81 | Mehdi Abaakouk | |
461 | 81 | Mehdi Abaakouk | <pre> |
462 | 81 | Mehdi Abaakouk | ceph -s |
463 | 81 | Mehdi Abaakouk | </pre> |
464 | 81 | Mehdi Abaakouk | |
465 | 81 | Mehdi Abaakouk | La crushmap le jour de l'installation: |
466 | 79 | Mehdi Abaakouk | |
467 | 79 | Mehdi Abaakouk | <pre> |
468 | 79 | Mehdi Abaakouk | # begin crush map |
469 | 79 | Mehdi Abaakouk | tunable choose_local_tries 0 |
470 | 79 | Mehdi Abaakouk | tunable choose_local_fallback_tries 0 |
471 | 79 | Mehdi Abaakouk | tunable choose_total_tries 50 |
472 | 79 | Mehdi Abaakouk | tunable chooseleaf_descend_once 1 |
473 | 79 | Mehdi Abaakouk | |
474 | 79 | Mehdi Abaakouk | # devices |
475 | 79 | Mehdi Abaakouk | device 0 osd.0 |
476 | 79 | Mehdi Abaakouk | device 1 osd.1 |
477 | 79 | Mehdi Abaakouk | device 2 osd.2 |
478 | 79 | Mehdi Abaakouk | device 3 osd.3 |
479 | 79 | Mehdi Abaakouk | device 4 osd.4 |
480 | 79 | Mehdi Abaakouk | device 5 osd.5 |
481 | 79 | Mehdi Abaakouk | |
482 | 79 | Mehdi Abaakouk | # types |
483 | 79 | Mehdi Abaakouk | type 0 osd |
484 | 79 | Mehdi Abaakouk | type 1 host |
485 | 79 | Mehdi Abaakouk | type 2 chassis |
486 | 79 | Mehdi Abaakouk | type 3 rack |
487 | 79 | Mehdi Abaakouk | type 4 row |
488 | 79 | Mehdi Abaakouk | type 5 pdu |
489 | 79 | Mehdi Abaakouk | type 6 pod |
490 | 79 | Mehdi Abaakouk | type 7 room |
491 | 79 | Mehdi Abaakouk | type 8 datacenter |
492 | 79 | Mehdi Abaakouk | type 9 region |
493 | 79 | Mehdi Abaakouk | type 10 root |
494 | 79 | Mehdi Abaakouk | |
495 | 80 | Mehdi Abaakouk | host g3-ssd { |
496 | 79 | Mehdi Abaakouk | id -1 # do not change unnecessarily |
497 | 79 | Mehdi Abaakouk | alg straw |
498 | 1 | Mehdi Abaakouk | hash 0 # rjenkins1 |
499 | 79 | Mehdi Abaakouk | item osd.3 weight 0.040 |
500 | 79 | Mehdi Abaakouk | } |
501 | 79 | Mehdi Abaakouk | |
502 | 79 | Mehdi Abaakouk | |
503 | 79 | Mehdi Abaakouk | host g3-harddisk { |
504 | 80 | Mehdi Abaakouk | id -2 # do not change unnecessarily |
505 | 1 | Mehdi Abaakouk | alg straw |
506 | 79 | Mehdi Abaakouk | hash 0 # rjenkins1 |
507 | 79 | Mehdi Abaakouk | item osd.0 weight 1.810 |
508 | 79 | Mehdi Abaakouk | } |
509 | 79 | Mehdi Abaakouk | |
510 | 79 | Mehdi Abaakouk | host g2-ssd { |
511 | 80 | Mehdi Abaakouk | id -3 # do not change unnecessarily |
512 | 1 | Mehdi Abaakouk | # weight 3.630 |
513 | 79 | Mehdi Abaakouk | alg straw |
514 | 79 | Mehdi Abaakouk | hash 0 # rjenkins1 |
515 | 79 | Mehdi Abaakouk | item osd.4 weight 0.000 |
516 | 79 | Mehdi Abaakouk | } |
517 | 79 | Mehdi Abaakouk | |
518 | 1 | Mehdi Abaakouk | host g2-harddisk { |
519 | 80 | Mehdi Abaakouk | id -4 # do not change unnecessarily |
520 | 79 | Mehdi Abaakouk | # weight 3.630 |
521 | 79 | Mehdi Abaakouk | alg straw |
522 | 79 | Mehdi Abaakouk | hash 0 # rjenkins1 |
523 | 79 | Mehdi Abaakouk | item osd.1 weight 3.630 |
524 | 79 | Mehdi Abaakouk | } |
525 | 1 | Mehdi Abaakouk | |
526 | 79 | Mehdi Abaakouk | host g1-ssd { |
527 | 80 | Mehdi Abaakouk | id -5 # do not change unnecessarily |
528 | 79 | Mehdi Abaakouk | # weight 3.630 |
529 | 79 | Mehdi Abaakouk | alg straw |
530 | 79 | Mehdi Abaakouk | hash 0 # rjenkins1 |
531 | 79 | Mehdi Abaakouk | item osd.5 weight 0.000 |
532 | 79 | Mehdi Abaakouk | } |
533 | 1 | Mehdi Abaakouk | host g1-harddisk { |
534 | 80 | Mehdi Abaakouk | id -6 # do not change unnecessarily |
535 | 79 | Mehdi Abaakouk | # weight 3.630 |
536 | 79 | Mehdi Abaakouk | alg straw |
537 | 79 | Mehdi Abaakouk | hash 0 # rjenkins1 |
538 | 79 | Mehdi Abaakouk | item osd.2 weight 3.630 |
539 | 79 | Mehdi Abaakouk | } |
540 | 79 | Mehdi Abaakouk | |
541 | 79 | Mehdi Abaakouk | root harddrive { |
542 | 80 | Mehdi Abaakouk | id -7 |
543 | 79 | Mehdi Abaakouk | alg straw |
544 | 79 | Mehdi Abaakouk | hash 0 |
545 | 79 | Mehdi Abaakouk | item g1-harddisk weight 2.00 |
546 | 79 | Mehdi Abaakouk | item g2-harddisk weight 2.00 |
547 | 79 | Mehdi Abaakouk | item g3-harddisk weight 2.00 |
548 | 79 | Mehdi Abaakouk | } |
549 | 79 | Mehdi Abaakouk | |
550 | 79 | Mehdi Abaakouk | root ssd { |
551 | 80 | Mehdi Abaakouk | id -8 |
552 | 79 | Mehdi Abaakouk | alg straw |
553 | 79 | Mehdi Abaakouk | hash 0 |
554 | 79 | Mehdi Abaakouk | item g1-ssd weight 2.00 |
555 | 79 | Mehdi Abaakouk | item g2-ssd weight 2.00 |
556 | 79 | Mehdi Abaakouk | item g3-ssd weight 2.00 |
557 | 79 | Mehdi Abaakouk | } |
558 | 79 | Mehdi Abaakouk | |
559 | 1 | Mehdi Abaakouk | # rules |
560 | 79 | Mehdi Abaakouk | rule default { |
561 | 79 | Mehdi Abaakouk | ruleset 0 |
562 | 79 | Mehdi Abaakouk | type replicated |
563 | 79 | Mehdi Abaakouk | min_size 1 |
564 | 79 | Mehdi Abaakouk | max_size 10 |
565 | 79 | Mehdi Abaakouk | step take harddrive |
566 | 79 | Mehdi Abaakouk | step chooseleaf firstn 0 type host |
567 | 79 | Mehdi Abaakouk | step emit |
568 | 79 | Mehdi Abaakouk | } |
569 | 79 | Mehdi Abaakouk | |
570 | 79 | Mehdi Abaakouk | rule ssd { |
571 | 79 | Mehdi Abaakouk | ruleset 1 |
572 | 79 | Mehdi Abaakouk | type replicated |
573 | 79 | Mehdi Abaakouk | min_size 1 |
574 | 79 | Mehdi Abaakouk | max_size 10 |
575 | 79 | Mehdi Abaakouk | step take ssd |
576 | 79 | Mehdi Abaakouk | step chooseleaf firstn 0 type host |
577 | 79 | Mehdi Abaakouk | step emit |
578 | 79 | Mehdi Abaakouk | } |
579 | 80 | Mehdi Abaakouk | |
580 | 79 | Mehdi Abaakouk | |
581 | 79 | Mehdi Abaakouk | # end crush map |
582 | 79 | Mehdi Abaakouk | </pre> |
583 | 4 | Mehdi Abaakouk | |
584 | 4 | Mehdi Abaakouk | h2. Management d'openstack |