<?xml
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>L'Imp'Rock Sc&#233;nette (by @_daffyduke_)</title>
	<link>https://www.coincoin.fr.eu.org/</link>
	<description>Les billets personnels d'Olivier Duquesne plus connu sur la toile &#233;lectronique sous le pseudonyme de DaffyDuke ...
Je pouet de temps en temps sur Mastodon</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.coincoin.fr.eu.org/spip.php?id_mot=41&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>L'Imp'Rock Sc&#233;nette (by @_daffyduke_)</title>
		<url>https://www.coincoin.fr.eu.org/local/cache-vignettes/L144xH97/siteon0-5c625.png?1719642190</url>
		<link>https://www.coincoin.fr.eu.org/</link>
		<height>97</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>Notes Meetup Docker - chez GFI</title>
		<link>https://www.coincoin.fr.eu.org/?Notes-Meetup-Docker-chez-GFI</link>
		<guid isPermaLink="true">https://www.coincoin.fr.eu.org/?Notes-Meetup-Docker-chez-GFI</guid>
		<dc:date>2017-02-23T18:29:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne aka DaffyDuke</dc:creator>


		<dc:subject>linux</dc:subject>
		<dc:subject>virtualisation</dc:subject>

		<description>
&lt;p&gt;VSCT &lt;br class='autobr' /&gt;
2015 openstack en r&#233;action &#224; aws 2016 docker + MEP openstack mutation socit&#233; &#233; DEVOPS cr&#233;ation d'une plateforme VSCloud, build fast &amp; chip Environ 10 applis en prod docker (essentiellement applis internes) ou le site de recrutement openstack par hp (helion) (avec un debut brique &#224; brique pour exp&#233;rimenter ) git puppet consul jenkins consul-hproxy swarm register jira &lt;br class='autobr' /&gt;
tenant + swarm + catalogue d'image docker tomcat, mysql, .... avec consul / nginx / ... jenkins en mode pipeline (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.coincoin.fr.eu.org/?-Au-boulot-" rel="directory"&gt;Au boulot&lt;/a&gt;

/ 
&lt;a href="https://www.coincoin.fr.eu.org/?+-linux-+" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://www.coincoin.fr.eu.org/?+-virtualisation-+" rel="tag"&gt;virtualisation&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;VSCT&lt;/h2&gt;
&lt;p&gt;2015 openstack en r&#233;action &#224; aws&lt;br class='autobr' /&gt;
2016 docker + MEP openstack&lt;br class='autobr' /&gt;
mutation socit&#233; &#233; DEVOPS&lt;br class='autobr' /&gt;
cr&#233;ation d'une plateforme VSCloud, build fast &amp; chip&lt;br class='autobr' /&gt;
Environ 10 applis en prod docker (essentiellement applis internes) ou le site&lt;br class='autobr' /&gt;
de recrutement&lt;br class='autobr' /&gt;
openstack par hp (helion)&lt;br class='autobr' /&gt;
(avec un debut brique &#224; brique pour exp&#233;rimenter )&lt;br class='autobr' /&gt;
git puppet consul jenkins consul-hproxy swarm register jira&lt;/p&gt;
&lt;p&gt;tenant + swarm + catalogue d'image docker tomcat, mysql, ....&lt;br class='autobr' /&gt;
avec consul / nginx / ...&lt;br class='autobr' /&gt;
jenkins en mode pipeline pour le dploiement des conteneurs&lt;/p&gt;
&lt;p&gt;puis l'equipe de prod deploie en prod&lt;br class='autobr' /&gt;
dans le m&#234;me tenant (2 swarm + 1 VM bastion)&lt;/p&gt;
&lt;p&gt;c'est jenkins qui ordonnance les install' avec u go humain pour la prod&lt;/p&gt;
&lt;p&gt;puppet cr&#233;e le tenant pour donner &#224; manger &#224; heat&lt;br class='autobr' /&gt;
(avant rundeck + heat)&lt;br class='autobr' /&gt;
fail fast sur consul (pas encore de bdd &#224; rollbacker)&lt;br class='autobr' /&gt;
flocker pour le backup de base en cron&lt;br class='autobr' /&gt;
sur des SLA nuls :-)&lt;/p&gt;
&lt;p&gt;vision &#224; 2 ans pour la scalabilit&#233;&lt;/p&gt;
&lt;p&gt;planif de MEP encore&lt;/p&gt;
&lt;p&gt;garantie de la prod : prod ou dev ? c'est le dev qui a la main sur le contenu&lt;br class='autobr' /&gt;
pas la prod &#034;comme avant&#034;&lt;br class='autobr' /&gt;
besoin de changement d'organisation&lt;/p&gt;
&lt;p&gt;autre solution kafka-manager&lt;/p&gt;
&lt;p&gt;recrutement vsct com&lt;/p&gt;
&lt;p&gt;openstack = 1 IP entrante&lt;/p&gt;
&lt;p&gt;supervision cetreon mais pas simple sur docker ....&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;ADEO&lt;/h2&gt;
&lt;p&gt;rancher&lt;br class='autobr' /&gt;
pas de maturite en prod, c'est le dev qui pousse&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Notes Susecon 2016 - Washington</title>
		<link>https://www.coincoin.fr.eu.org/?Notes-Susecon-2016-Washington</link>
		<guid isPermaLink="true">https://www.coincoin.fr.eu.org/?Notes-Susecon-2016-Washington</guid>
		<dc:date>2016-11-07T17:53:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne aka DaffyDuke</dc:creator>


		<dc:subject>linux</dc:subject>

		<description>
&lt;p&gt;CEPH, OpenSorce, Software Defined Storage, LTS de 12 mois, Suse Storage 3 basee sur Jewel release
&lt;br class='autobr' /&gt;
jusqu qu 6 milliards de noeuds par cluster CERN et toutes les distrib ou constructeurs sont membres du management CEPH usual strategy is to scale up (vertical) ceph is for scaling out (horizontal) suse is the first to ship a iscsi gateway wih ceph (supported) RADOS = CEPH cluster, stockage objet Librados = app pour acceder aux donnees (C, PHP, Java etc) Radosgw = gateway REST co ;\mpatible S3, (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.coincoin.fr.eu.org/?-Au-boulot-" rel="directory"&gt;Au boulot&lt;/a&gt;

/ 
&lt;a href="https://www.coincoin.fr.eu.org/?+-linux-+" rel="tag"&gt;linux&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;textarea readonly='readonly' cols='40' rows='1056' class='spip_cadre spip_cadre_block' dir='ltr'&gt;CEPH, OpenSorce, Software Defined Storage, LTS de 12 mois, Suse Storage 3 basee sur Jewel release jusqu qu 6 milliards de noeuds par cluster CERN et toutes les distrib ou constructeurs sont membres du management CEPH usual strategy is to scale up (vertical) ceph is for scaling out (horizontal) suse is the first to ship a iscsi gateway wih ceph (supported) RADOS = CEPH cluster, stockage objet Librados = app pour acceder aux donnees (C, PHP, Java etc) Radosgw = gateway REST co;\mpatible S3, Swift RBD = block sur host qui heberge une instance CEPH FS = fs pour un client la gatway irbd presente les donnees en iscsi ou nfs etc 2 co;posants i;portants : - un OSD pour manager les disques (one per path) - MONS (3, $, ....), pour monitorer le cluster Un algo CRUSH de stockage Disk-&gt; FileSystem (XFS) -&gt; OSD Les donnes sont stockees via algo CRUSH Mimu;m de 3 MONS, utilise algo PAXOS pour monitorer les nodes et le reseau =&gt; i;pair absoluement monitor map, contient placement group map, CRUSH map, epoch pour garantir integrite des donnes rssayer de mettre le moins possible de mons un client accede a la donnee objet en ;ode osd directement PAXOS election de l ip la plus petite pour elire un MON les objets sont ranges dans des storage pools defaultpool rbd regles de placement de snapshot par pool l osd voit les placement group, chaque objet est associe a um placement group il faut faire attention au nbre de PG CRUSH controllable Replication Under les donnes ne sont pas centralisees OSD run CRUSH =&gt; besoin de CPU Step2, install, hardware voir la doc suse ceph unprivileged, 167 if possible DNS recommande ipv4 tres bien timesync and at least 2 networks : pub for client/admin and priv for osd to osd SES3 dispo en extension de SLES 12sp0 zypper in ceph-deploy and that s all folks ceph-deploy install &lt;node list&gt; ceph-deply new -cluster moncluster &lt;node list&gt; ceph.conf contient les cles et le rep du journal ceph-deploy mon create-initial &lt;node list&gt; utiliser create pour ajouter des nodes MON puis ajouter les OSD ceph-deploy osd prepare node:dev when check with ceph -k ceph.client.admin.keyring status ceph -w (watch) geeko@ses-admin:~/Desktop&gt; sudo su - We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. root's password: ses-admin:~ # yast yast yast2 ses-admin:~ # yast2 ses-admin:~ # useradd -m cephadm ses-admin:~ # passwd cephadm New password: BAD PASSWORD: it is too short BAD PASSWORD: is too simple Retype new password: passwd: password updated successfully ses-admin:~ # visudo visudo: /etc/sudoers.tmp unchanged ses-admin:~ # visudo ses-admin:~ # su &#8211; cephadm su: user &#8211; does not exist ses-admin:~ # su - cephadm cephadm@ses-admin:~&gt; ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/cephadm/.ssh/id_rsa): Created directory '/home/cephadm/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/cephadm/.ssh/id_rsa. Your public key has been saved in /home/cephadm/.ssh/id_rsa.pub. The key fingerprint is: 9e:b2:bd:31:6f:32:10:b6:7e:84:77:33:79:86:a3:e6 [MD5] cephadm@ses-admin The key's randomart image is: +--[ RSA 2048]----+ | | | | | | | o | | . +S o | | +.o.B o | | ..+=o * | | .+*+. | | .+E=. | +--[MD5]----------+ cephadm@ses-admin:~&gt; ssh-copy-id cephadm@ses-node1 The authenticity of host 'ses-node1 (192.168.100.11)' can't be established. ECDSA key fingerprint is 33:4d:5a:db:e7:69:26:2b:90:11:91:ad:ab:3d:49:eb [MD5]. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys Password: Number of key(s) added: 1 Now try logging into the machine, with: &#034;ssh 'cephadm@ses-node1'&#034; and check to make sure that only the key(s) you wanted were added. cephadm@ses-admin:~&gt; ssh-copy-id cephadm@ses-node2 The authenticity of host 'ses-node2 (192.168.100.12)' can't be established. ECDSA key fingerprint is 33:4d:5a:db:e7:69:26:2b:90:11:91:ad:ab:3d:49:eb [MD5]. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys Password: Number of key(s) added: 1 Now try logging into the machine, with: &#034;ssh 'cephadm@ses-node2'&#034; and check to make sure that only the key(s) you wanted were added. cephadm@ses-admin:~&gt; ssh-copy-id cephadm@ses-node3 The authenticity of host 'ses-node3 (192.168.100.13)' can't be established. ECDSA key fingerprint is 33:4d:5a:db:e7:69:26:2b:90:11:91:ad:ab:3d:49:eb [MD5]. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys Password: Number of key(s) added: 1 Now try logging into the machine, with: &#034;ssh 'cephadm@ses-node3'&#034; and check to make sure that only the key(s) you wanted were added. cephadm@ses-admin:~&gt; ssh ses-node3 id uid=1001(cephadm) gid=100(users) groups=100(users) cephadm@ses-admin:~&gt; exit logout ses-admin:~ # zypper in ceph ceph-deploy Loading repository data... Reading installed packages... Resolving package dependencies... The following 42 NEW packages are going to be installed: FastCGI babeltrace ceph ceph-base ceph-common ceph-deploy ceph-mds ceph-mon ceph-osd gperftools libboost_iostreams1_54_0 libboost_program_options1_54_0 libboost_random1_54_0 libcephfs1 libibverbs1 libleveldb1 librados2 libradosstriper1 librbd1 librdmacm1 librgw2 liburcu0 libxio lttng-ust python-Flask python-Jinja2 python-MarkupSafe python-Werkzeug python-apipkg python-argparse python-cephfs python-ecdsa python-execnet python-itsdangerous python-paramiko python-pushy python-pycrypto python-rados python-rbd python-remoto python-requests supportutils-plugin-ses The following package is not supported by its vendor: libxio 42 new packages to install. Overall download size: 48.7 MiB. Already cached: 0 B. After the operation, additional 211.7 MiB will be used. Continue? [y/n/? shows all options] (y): y Retrieving package python-Werkzeug-0.9.6-5.2.noarch (1/42), 483.9 KiB ( 2.2 MiB unpacked) Retrieving package python-apipkg-1.2-1.2.noarch (2/42), 9.2 KiB ( 18.2 KiB unpacked) Retrieving package python-ecdsa-0.13-2.1.noarch (3/42), 77.4 KiB (261.8 KiB unpacked) Retrieving package python-itsdangerous-0.24-2.1.noarch (4/42), 20.2 KiB ( 69.1 KiB unpacked) Retrieving package supportutils-plugin-ses-1.0+git.1463485157.269428c-4.1.noarch (5/42), 13.7 KiB ( 26.0 KiB unpacked) Retrieving package FastCGI-2.4.0-167.1.x86_64 (6/42), 184.8 KiB (587.6 KiB unpacked) Retrieving package libboost_random1_54_0-1.54.0-13.1.x86_64 (7/42), 20.0 KiB ( 10.3 KiB unpacked) Retrieving package libleveldb1-1.18-1.3.x86_64 (8/42), 132.8 KiB (361.3 KiB unpacked) Retrieving package python-MarkupSafe-0.18-7.1.x86_64 (9/42), 24.6 KiB ( 66.0 KiB unpacked) Retrieving package python-pycrypto-2.6.1-4.1.x86_64 (10/42), 371.5 KiB ( 2.0 MiB unpacked) Retrieving package python-execnet-1.4.1-1.3.noarch (11/42), 73.7 KiB (249.5 KiB unpacked) Retrieving package python-Jinja2-2.7.3-17.1.noarch (12/42), 278.5 KiB ( 1.7 MiB unpacked) Retrieving package python-paramiko-1.15.2-1.1.noarch (13/42), 860.0 KiB ( 5.1 MiB unpacked) Retrieving package python-remoto-0.0.27-1.1.noarch (14/42), 80.6 KiB (298.2 KiB unpacked) Retrieving package python-Flask-0.10.1-2.1.noarch (15/42), 178.0 KiB (827.7 KiB unpacked) Retrieving package python-pushy-0.5.3-1.5.noarch (16/42), 58.3 KiB (238.5 KiB unpacked) Retrieving package python-argparse-1.2.1-15.8.noarch (17/42), 248.6 KiB (490.1 KiB unpacked) Retrieving package python-requests-2.3.0-6.5.2.noarch (18/42), 334.6 KiB ( 1.7 MiB unpacked) Retrieving package babeltrace-1.2.4-3.2.x86_64 (19/42), 159.0 KiB (463.9 KiB unpacked) Retrieving package gperftools-2.2-2.2.x86_64 (20/42), 554.3 KiB ( 2.2 MiB unpacked) Retrieving package libboost_iostreams1_54_0-1.54.0-13.1.x86_64 (21/42), 39.8 KiB (103.1 KiB unpacked) Retrieving package libboost_program_options1_54_0-1.54.0-13.1.x86_64 (22/42), 125.5 KiB (456.7 KiB unpacked) Retrieving package libibverbs1-1.1.7-12.2.x86_64 (23/42), 34.1 KiB ( 71.4 KiB unpacked) Retrieving package liburcu0-0.8.8-1.2.x86_64 (24/42), 49.4 KiB (182.6 KiB unpacked) Retrieving package librdmacm1-1.0.18.1-1.14.x86_64 (25/42), 53.4 KiB (129.1 KiB unpacked) Retrieving package lttng-ust-2.7.0-1.2.x86_64 (26/42), 171.4 KiB (754.7 KiB unpacked) Retrieving package ceph-deploy-1.5.32+git.1464082518.5aab689-1.1.noarch (27/42), 174.7 KiB (740.3 KiB unpacked) Retrieving package libxio-1.6+git.1461071064.e0ed264-2.1.x86_64 (28/42), 242.5 KiB (885.9 KiB unpacked) Retrieving package librados2-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (29/42), 1.7 MiB ( 6.3 MiB unpacked) Retrieving package libcephfs1-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (30/42), 1.8 MiB ( 6.0 MiB unpacked) Retrieving package python-rados-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (31/42), 209.0 KiB (493.4 KiB unpacked) Retrieving package librgw2-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (32/42), 2.7 MiB ( 10.3 MiB unpacked) Retrieving package librbd1-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (33/42), 2.1 MiB ( 7.5 MiB unpacked) Retrieving package libradosstriper1-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (34/42), 1.8 MiB ( 6.9 MiB unpacked) Retrieving package python-cephfs-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (35/42), 138.1 KiB (227.4 KiB unpacked) Retrieving package python-rbd-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (36/42), 133.1 KiB (184.9 KiB unpacked) Retrieving package ceph-common-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (37/42), 14.9 MiB ( 67.1 MiB unpacked) Retrieving package ceph-base-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (38/42), 3.9 MiB ( 33.1 MiB unpacked) Retrieving package ceph-osd-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (39/42), 9.0 MiB ( 33.2 MiB unpacked) Retrieving package ceph-mon-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (40/42), 2.7 MiB ( 9.3 MiB unpacked) Retrieving package ceph-mds-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (41/42), 2.7 MiB ( 9.3 MiB unpacked) Retrieving package ceph-10.2.1+git.1464009581.b8ee9e4-1.1.x86_64 (42/42), 79.1 KiB ( 0 B unpacked) Checking for file conflicts: .............................................................................[done] ( 1/42) Installing: python-Werkzeug-0.9.6-5.2 ............................................................[done] ( 2/42) Installing: python-apipkg-1.2-1.2 ................................................................[done] ( 3/42) Installing: python-ecdsa-0.13-2.1 ................................................................[done] ( 4/42) Installing: python-itsdangerous-0.24-2.1 .........................................................[done] ( 5/42) Installing: supportutils-plugin-ses-1.0+git.1463485157.269428c-4.1 ...............................[done] ( 6/42) Installing: FastCGI-2.4.0-167.1 ..................................................................[done] ( 7/42) Installing: libboost_random1_54_0-1.54.0-13.1 ....................................................[done] ( 8/42) Installing: libleveldb1-1.18-1.3 .................................................................[done] ( 9/42) Installing: python-MarkupSafe-0.18-7.1 ...........................................................[done] (10/42) Installing: python-pycrypto-2.6.1-4.1 ............................................................[done] (11/42) Installing: python-execnet-1.4.1-1.3 .............................................................[done] (12/42) Installing: python-Jinja2-2.7.3-17.1 .............................................................[done] (13/42) Installing: python-paramiko-1.15.2-1.1 ...........................................................[done] (14/42) Installing: python-remoto-0.0.27-1.1 .............................................................[done] (15/42) Installing: python-Flask-0.10.1-2.1 ..............................................................[done] (16/42) Installing: python-pushy-0.5.3-1.5 ...............................................................[done] (17/42) Installing: python-argparse-1.2.1-15.8 ...........................................................[done] (18/42) Installing: python-requests-2.3.0-6.5.2 ..........................................................[done] (19/42) Installing: babeltrace-1.2.4-3.2 .................................................................[done] (20/42) Installing: gperftools-2.2-2.2 ...................................................................[done] (21/42) Installing: libboost_iostreams1_54_0-1.54.0-13.1 .................................................[done] (22/42) Installing: libboost_program_options1_54_0-1.54.0-13.1 ...........................................[done] (23/42) Installing: libibverbs1-1.1.7-12.2 ...............................................................[done] (24/42) Installing: liburcu0-0.8.8-1.2 ...................................................................[done] (25/42) Installing: librdmacm1-1.0.18.1-1.14 .............................................................[done] (26/42) Installing: lttng-ust-2.7.0-1.2 ..................................................................[done] (27/42) Installing: ceph-deploy-1.5.32+git.1464082518.5aab689-1.1 ........................................[done] (28/42) Installing: libxio-1.6+git.1461071064.e0ed264-2.1 ................................................[done] (29/42) Installing: librados2-10.2.1+git.1464009581.b8ee9e4-1.1 ..........................................[done] (30/42) Installing: libcephfs1-10.2.1+git.1464009581.b8ee9e4-1.1 .........................................[done] (31/42) Installing: python-rados-10.2.1+git.1464009581.b8ee9e4-1.1 .......................................[done] (32/42) Installing: librgw2-10.2.1+git.1464009581.b8ee9e4-1.1 ............................................[done] (33/42) Installing: librbd1-10.2.1+git.1464009581.b8ee9e4-1.1 ............................................[done] (34/42) Installing: libradosstriper1-10.2.1+git.1464009581.b8ee9e4-1.1 ...................................[done] (35/42) Installing: python-cephfs-10.2.1+git.1464009581.b8ee9e4-1.1 ......................................[done] (36/42) Installing: python-rbd-10.2.1+git.1464009581.b8ee9e4-1.1 .........................................[done] (37/42) Installing: ceph-common-10.2.1+git.1464009581.b8ee9e4-1.1 ........................................[done] (38/42) Installing: ceph-base-10.2.1+git.1464009581.b8ee9e4-1.1 ..........................................[done] Additional rpm output: Updating /etc/sysconfig/ceph... (39/42) Installing: ceph-osd-10.2.1+git.1464009581.b8ee9e4-1.1 ...........................................[done] (40/42) Installing: ceph-mon-10.2.1+git.1464009581.b8ee9e4-1.1 ...........................................[done] (41/42) Installing: ceph-mds-10.2.1+git.1464009581.b8ee9e4-1.1 ...........................................[done] (42/42) Installing: ceph-10.2.1+git.1464009581.b8ee9e4-1.1 ...............................................[done] ses-admin:~ # su &#8211; cephadm su: user &#8211; does not exist ses-admin:~ # su - cephadm cephadm@ses-admin:~&gt; ls bin public_html cephadm@ses-admin:~&gt; ceph-deploy install ses-node1 ses-node2 ses-node3 [ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadm/.cephdeploy.conf [ceph_deploy.cli][INFO ] Invoked (1.5.32): /usr/bin/ceph-deploy install ses-node1 ses-node2 ses-node3 [ceph_deploy.cli][INFO ] ceph-deploy options: [ceph_deploy.cli][INFO ] verbose : False [ceph_deploy.cli][INFO ] testing : None [ceph_deploy.cli][INFO ] cd_conf : &lt;ceph_deploy.conf.cephdeploy.Conf instance at 0x7f12cbf6cef0&gt; [ceph_deploy.cli][INFO ] cluster : ceph [ceph_deploy.cli][INFO ] dev_commit : None [ceph_deploy.cli][INFO ] install_mds : False [ceph_deploy.cli][INFO ] stable : None [ceph_deploy.cli][INFO ] default_release : False [ceph_deploy.cli][INFO ] username : None [ceph_deploy.cli][INFO ] adjust_repos : True [ceph_deploy.cli][INFO ] func : &lt;function install at 0x7f12cc1b0668&gt; [ceph_deploy.cli][INFO ] install_all : False [ceph_deploy.cli][INFO ] repo : False [ceph_deploy.cli][INFO ] host : ['ses-node1', 'ses-node2', 'ses-node3'] [ceph_deploy.cli][INFO ] install_rgw : False [ceph_deploy.cli][INFO ] install_tests : False [ceph_deploy.cli][INFO ] repo_url : None [ceph_deploy.cli][INFO ] ceph_conf : None [ceph_deploy.cli][INFO ] install_osd : False [ceph_deploy.cli][INFO ] version_kind : stable [ceph_deploy.cli][INFO ] install_common : False [ceph_deploy.cli][INFO ] overwrite_conf : False [ceph_deploy.cli][INFO ] quiet : False [ceph_deploy.cli][INFO ] dev : master [ceph_deploy.cli][INFO ] local_mirror : None [ceph_deploy.cli][INFO ] release : None [ceph_deploy.cli][INFO ] install_mon : False [ceph_deploy.cli][INFO ] gpg_url : None [ceph_deploy.install][DEBUG ] Installing stable version infernalis on cluster ceph hosts ses-node1 ses-node2 ses-node3 [ceph_deploy.install][DEBUG ] Detecting platform for host ses-node1 ... [ses-node1][DEBUG ] connection detected need for sudo [ses-node1][DEBUG ] connected to host: ses-node1 [ses-node1][DEBUG ] detect platform information from remote host [ses-node1][DEBUG ] detect machine type [ceph_deploy.install][INFO ] Distro info: SUSE Linux Enterprise Server 12 x86_64 [ses-node1][INFO ] installing Ceph on ses-node1 [ses-node1][INFO ] Running command: sudo zypper --non-interactive --quiet refresh [ses-node1][INFO ] Running command: sudo zypper --non-interactive --quiet install ceph ceph-radosgw [ses-node1][DEBUG ] [ses-node1][DEBUG ] The following 35 NEW packages are going to be installed: [ses-node1][DEBUG ] babeltrace ceph ceph-base ceph-common ceph-mds ceph-mon ceph-osd ceph-radosgw FastCGI gperftools libboost_iostreams1_54_0 libboost_program_options1_54_0 libboost_random1_54_0 libcephfs1 libibverbs1 libleveldb1 librados2 libradosstriper1 librbd1 librdmacm1 librgw2 liburcu0 libxio lttng-ust python-cephfs python-Flask python-itsdangerous python-Jinja2 python-MarkupSafe python-rados python-rbd python-requests python-setuptools python-Werkzeug supportutils-plugin-ses [ses-node1][DEBUG ] [ses-node1][DEBUG ] The following package is not supported by its vendor: [ses-node1][DEBUG ] libxio [ses-node1][DEBUG ] [ses-node1][DEBUG ] 35 new packages to install. [ses-node1][DEBUG ] Overall download size: 47.3 MiB. Already cached: 0 B. After the operation, additional 204.1 MiB will be used. [ses-node1][DEBUG ] Continue? [y/n/? shows all options] (y): y [ses-node1][INFO ] Running command: sudo ceph --version [ses-node1][DEBUG ] ceph version 10.2.1-112-gb8ee9e4 (b8ee9e4007f0443ef50deb1a691c3ea8bd0a11fe) [ceph_deploy.install][DEBUG ] Detecting platform for host ses-node2 ... [ses-node2][DEBUG ] connection detected need for sudo [ses-node2][DEBUG ] connected to host: ses-node2 [ses-node2][DEBUG ] detect platform information from remote host [ses-node2][DEBUG ] detect machine type [ceph_deploy.install][INFO ] Distro info: SUSE Linux Enterprise Server 12 x86_64 [ses-node2][INFO ] installing Ceph on ses-node2 [ses-node2][INFO ] Running command: sudo zypper --non-interactive --quiet refresh [ses-node2][INFO ] Running command: sudo zypper --non-interactive --quiet install ceph ceph-radosgw [ses-node2][DEBUG ] [ses-node2][DEBUG ] The following 35 NEW packages are going to be installed: [ses-node2][DEBUG ] babeltrace ceph ceph-base ceph-common ceph-mds ceph-mon ceph-osd ceph-radosgw FastCGI gperftools libboost_iostreams1_54_0 libboost_program_options1_54_0 libboost_random1_54_0 libcephfs1 libibverbs1 libleveldb1 librados2 libradosstriper1 librbd1 librdmacm1 librgw2 liburcu0 libxio lttng-ust python-cephfs python-Flask python-itsdangerous python-Jinja2 python-MarkupSafe python-rados python-rbd python-requests python-setuptools python-Werkzeug supportutils-plugin-ses [ses-node2][DEBUG ] [ses-node2][DEBUG ] The following package is not supported by its vendor: [ses-node2][DEBUG ] libxio [ses-node2][DEBUG ] [ses-node2][DEBUG ] 35 new packages to install. [ses-node2][DEBUG ] Overall download size: 47.3 MiB. Already cached: 0 B. After the operation, additional 204.1 MiB will be used. [ses-node2][DEBUG ] Continue? [y/n/? shows all options] (y): y [ses-node2][INFO ] Running command: sudo ceph --version [ses-node2][DEBUG ] ceph version 10.2.1-112-gb8ee9e4 (b8ee9e4007f0443ef50deb1a691c3ea8bd0a11fe) [ceph_deploy.install][DEBUG ] Detecting platform for host ses-node3 ... [ses-node3][DEBUG ] connection detected need for sudo [ses-node3][DEBUG ] connected to host: ses-node3 [ses-node3][DEBUG ] detect platform information from remote host [ses-node3][DEBUG ] detect machine type [ceph_deploy.install][INFO ] Distro info: SUSE Linux Enterprise Server 12 x86_64 [ses-node3][INFO ] installing Ceph on ses-node3 [ses-node3][INFO ] Running command: sudo zypper --non-interactive --quiet refresh [ses-node3][INFO ] Running command: sudo zypper --non-interactive --quiet install ceph ceph-radosgw [ses-node3][DEBUG ] [ses-node3][DEBUG ] The following 35 NEW packages are going to be installed: [ses-node3][DEBUG ] babeltrace ceph ceph-base ceph-common ceph-mds ceph-mon ceph-osd ceph-radosgw FastCGI gperftools libboost_iostreams1_54_0 libboost_program_options1_54_0 libboost_random1_54_0 libcephfs1 libibverbs1 libleveldb1 librados2 libradosstriper1 librbd1 librdmacm1 librgw2 liburcu0 libxio lttng-ust python-cephfs python-Flask python-itsdangerous python-Jinja2 python-MarkupSafe python-rados python-rbd python-requests python-setuptools python-Werkzeug supportutils-plugin-ses [ses-node3][DEBUG ] [ses-node3][DEBUG ] The following package is not supported by its vendor: [ses-node3][DEBUG ] libxio [ses-node3][DEBUG ] [ses-node3][DEBUG ] 35 new packages to install. [ses-node3][DEBUG ] Overall download size: 47.3 MiB. Already cached: 0 B. After the operation, additional 204.1 MiB will be used. [ses-node3][DEBUG ] Continue? [y/n/? shows all options] (y): y [ses-node3][INFO ] Running command: sudo ceph --version [ses-node3][DEBUG ] ceph version 10.2.1-112-gb8ee9e4 (b8ee9e4007f0443ef50deb1a691c3ea8bd0a11fe) cephadm@ses-admin:~&gt; ls bin ceph-deploy-ceph.log public_html cephadm@ses-admin:~&gt; cat ceph-deploy-ceph.log [2016-11-07 11:37:32,854][ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadm/.cephdeploy.conf [2016-11-07 11:37:32,854][ceph_deploy.cli][INFO ] Invoked (1.5.32): /usr/bin/ceph-deploy install ses-node1 ses-node2 ses-node3 [2016-11-07 11:37:32,854][ceph_deploy.cli][INFO ] ceph-deploy options: [2016-11-07 11:37:32,854][ceph_deploy.cli][INFO ] verbose : False [2016-11-07 11:37:32,854][ceph_deploy.cli][INFO ] testing : None [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] cd_conf : &lt;ceph_deploy.conf.cephdeploy.Conf instance at 0x7f12cbf6cef0&gt; [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] cluster : ceph [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] dev_commit : None [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] install_mds : False [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] stable : None [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] default_release : False [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] username : None [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] adjust_repos : True [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] func : &lt;function install at 0x7f12cc1b0668&gt; [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] install_all : False [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] repo : False [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] host : ['ses-node1', 'ses-node2', 'ses-node3'] [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] install_rgw : False [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] install_tests : False [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] repo_url : None [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] ceph_conf : None [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] install_osd : False [2016-11-07 11:37:32,855][ceph_deploy.cli][INFO ] version_kind : stable [2016-11-07 11:37:32,856][ceph_deploy.cli][INFO ] install_common : False [2016-11-07 11:37:32,856][ceph_deploy.cli][INFO ] overwrite_conf : False [2016-11-07 11:37:32,856][ceph_deploy.cli][INFO ] quiet : False [2016-11-07 11:37:32,856][ceph_deploy.cli][INFO ] dev : master [2016-11-07 11:37:32,856][ceph_deploy.cli][INFO ] local_mirror : None [2016-11-07 11:37:32,856][ceph_deploy.cli][INFO ] release : None [2016-11-07 11:37:32,856][ceph_deploy.cli][INFO ] install_mon : False [2016-11-07 11:37:32,856][ceph_deploy.cli][INFO ] gpg_url : None [2016-11-07 11:37:32,856][ceph_deploy.install][DEBUG ] Installing stable version infernalis on cluster ceph hosts ses-node1 ses-node2 ses-node3 [2016-11-07 11:37:32,856][ceph_deploy.install][DEBUG ] Detecting platform for host ses-node1 ... [2016-11-07 11:37:33,075][ses-node1][DEBUG ] connection detected need for sudo [2016-11-07 11:37:33,221][ses-node1][DEBUG ] connected to host: ses-node1 [2016-11-07 11:37:33,221][ses-node1][DEBUG ] detect platform information from remote host [2016-11-07 11:37:33,256][ses-node1][DEBUG ] detect machine type [2016-11-07 11:37:33,260][ceph_deploy.install][INFO ] Distro info: SUSE Linux Enterprise Server 12 x86_64 [2016-11-07 11:37:33,260][ses-node1][INFO ] installing Ceph on ses-node1 [2016-11-07 11:37:33,263][ses-node1][INFO ] Running command: sudo zypper --non-interactive --quiet refresh [2016-11-07 11:37:33,491][ses-node1][INFO ] Running command: sudo zypper --non-interactive --quiet install ceph ceph-radosgw [2016-11-07 11:37:33,758][ses-node1][DEBUG ] [2016-11-07 11:37:33,758][ses-node1][DEBUG ] The following 35 NEW packages are going to be installed: [2016-11-07 11:37:33,758][ses-node1][DEBUG ] babeltrace ceph ceph-base ceph-common ceph-mds ceph-mon ceph-osd ceph-radosgw FastCGI gperftools libboost_iostreams1_54_0 libboost_program_options1_54_0 libboost_random1_54_0 libcephfs1 libibverbs1 libleveldb1 librados2 libradosstriper1 librbd1 librdmacm1 librgw2 liburcu0 libxio lttng-ust python-cephfs python-Flask python-itsdangerous python-Jinja2 python-MarkupSafe python-rados python-rbd python-requests python-setuptools python-Werkzeug supportutils-plugin-ses [2016-11-07 11:37:33,758][ses-node1][DEBUG ] [2016-11-07 11:37:33,758][ses-node1][DEBUG ] The following package is not supported by its vendor: [2016-11-07 11:37:33,758][ses-node1][DEBUG ] libxio [2016-11-07 11:37:33,758][ses-node1][DEBUG ] [2016-11-07 11:37:33,759][ses-node1][DEBUG ] 35 new packages to install. [2016-11-07 11:37:33,759][ses-node1][DEBUG ] Overall download size: 47.3 MiB. Already cached: 0 B. After the operation, additional 204.1 MiB will be used. [2016-11-07 11:37:33,759][ses-node1][DEBUG ] Continue? [y/n/? shows all options] (y): y [2016-11-07 11:37:44,565][ses-node1][INFO ] Running command: sudo ceph --version [2016-11-07 11:37:44,683][ses-node1][DEBUG ] ceph version 10.2.1-112-gb8ee9e4 (b8ee9e4007f0443ef50deb1a691c3ea8bd0a11fe) [2016-11-07 11:37:44,683][ceph_deploy.install][DEBUG ] Detecting platform for host ses-node2 ... [2016-11-07 11:37:44,876][ses-node2][DEBUG ] connection detected need for sudo [2016-11-07 11:37:45,016][ses-node2][DEBUG ] connected to host: ses-node2 [2016-11-07 11:37:45,017][ses-node2][DEBUG ] detect platform information from remote host [2016-11-07 11:37:45,055][ses-node2][DEBUG ] detect machine type [2016-11-07 11:37:45,060][ceph_deploy.install][INFO ] Distro info: SUSE Linux Enterprise Server 12 x86_64 [2016-11-07 11:37:45,060][ses-node2][INFO ] installing Ceph on ses-node2 [2016-11-07 11:37:45,062][ses-node2][INFO ] Running command: sudo zypper --non-interactive --quiet refresh [2016-11-07 11:37:45,335][ses-node2][INFO ] Running command: sudo zypper --non-interactive --quiet install ceph ceph-radosgw [2016-11-07 11:37:45,602][ses-node2][DEBUG ] [2016-11-07 11:37:45,602][ses-node2][DEBUG ] The following 35 NEW packages are going to be installed: [2016-11-07 11:37:45,602][ses-node2][DEBUG ] babeltrace ceph ceph-base ceph-common ceph-mds ceph-mon ceph-osd ceph-radosgw FastCGI gperftools libboost_iostreams1_54_0 libboost_program_options1_54_0 libboost_random1_54_0 libcephfs1 libibverbs1 libleveldb1 librados2 libradosstriper1 librbd1 librdmacm1 librgw2 liburcu0 libxio lttng-ust python-cephfs python-Flask python-itsdangerous python-Jinja2 python-MarkupSafe python-rados python-rbd python-requests python-setuptools python-Werkzeug supportutils-plugin-ses [2016-11-07 11:37:45,602][ses-node2][DEBUG ] [2016-11-07 11:37:45,603][ses-node2][DEBUG ] The following package is not supported by its vendor: [2016-11-07 11:37:45,603][ses-node2][DEBUG ] libxio [2016-11-07 11:37:45,603][ses-node2][DEBUG ] [2016-11-07 11:37:45,603][ses-node2][DEBUG ] 35 new packages to install. [2016-11-07 11:37:45,603][ses-node2][DEBUG ] Overall download size: 47.3 MiB. Already cached: 0 B. After the operation, additional 204.1 MiB will be used. [2016-11-07 11:37:45,603][ses-node2][DEBUG ] Continue? [y/n/? shows all options] (y): y [2016-11-07 11:37:56,699][ses-node2][INFO ] Running command: sudo ceph --version [2016-11-07 11:37:56,819][ses-node2][DEBUG ] ceph version 10.2.1-112-gb8ee9e4 (b8ee9e4007f0443ef50deb1a691c3ea8bd0a11fe) [2016-11-07 11:37:56,820][ceph_deploy.install][DEBUG ] Detecting platform for host ses-node3 ... [2016-11-07 11:37:57,028][ses-node3][DEBUG ] connection detected need for sudo [2016-11-07 11:37:57,173][ses-node3][DEBUG ] connected to host: ses-node3 [2016-11-07 11:37:57,173][ses-node3][DEBUG ] detect platform information from remote host [2016-11-07 11:37:57,210][ses-node3][DEBUG ] detect machine type [2016-11-07 11:37:57,215][ceph_deploy.install][INFO ] Distro info: SUSE Linux Enterprise Server 12 x86_64 [2016-11-07 11:37:57,216][ses-node3][INFO ] installing Ceph on ses-node3 [2016-11-07 11:37:57,218][ses-node3][INFO ] Running command: sudo zypper --non-interactive --quiet refresh [2016-11-07 11:37:57,494][ses-node3][INFO ] Running command: sudo zypper --non-interactive --quiet install ceph ceph-radosgw [2016-11-07 11:37:57,762][ses-node3][DEBUG ] [2016-11-07 11:37:57,762][ses-node3][DEBUG ] The following 35 NEW packages are going to be installed: [2016-11-07 11:37:57,762][ses-node3][DEBUG ] babeltrace ceph ceph-base ceph-common ceph-mds ceph-mon ceph-osd ceph-radosgw FastCGI gperftools libboost_iostreams1_54_0 libboost_program_options1_54_0 libboost_random1_54_0 libcephfs1 libibverbs1 libleveldb1 librados2 libradosstriper1 librbd1 librdmacm1 librgw2 liburcu0 libxio lttng-ust python-cephfs python-Flask python-itsdangerous python-Jinja2 python-MarkupSafe python-rados python-rbd python-requests python-setuptools python-Werkzeug supportutils-plugin-ses [2016-11-07 11:37:57,762][ses-node3][DEBUG ] [2016-11-07 11:37:57,762][ses-node3][DEBUG ] The following package is not supported by its vendor: [2016-11-07 11:37:57,762][ses-node3][DEBUG ] libxio [2016-11-07 11:37:57,762][ses-node3][DEBUG ] [2016-11-07 11:37:57,762][ses-node3][DEBUG ] 35 new packages to install. [2016-11-07 11:37:57,762][ses-node3][DEBUG ] Overall download size: 47.3 MiB. Already cached: 0 B. After the operation, additional 204.1 MiB will be used. [2016-11-07 11:37:57,762][ses-node3][DEBUG ] Continue? [y/n/? shows all options] (y): y [2016-11-07 11:38:08,867][ses-node3][INFO ] Running command: sudo ceph --version [2016-11-07 11:38:08,987][ses-node3][DEBUG ] ceph version 10.2.1-112-gb8ee9e4 (b8ee9e4007f0443ef50deb1a691c3ea8bd0a11fe) cephadm@ses-admin:~&gt; ceph -v ceph version 10.2.1-112-gb8ee9e4 (b8ee9e4007f0443ef50deb1a691c3ea8bd0a11fe) cephadm@ses-admin:~&gt; ceph-deploy new ses-node1 [ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephadm/.cephdeploy.conf [ceph_deploy.cli][INFO ] Invoked (1.5.32): /usr/bin/ceph-deploy new ses-node1 [ceph_deploy.cli][INFO ] ceph-deploy options: [ceph_deploy.cli][INFO ] username : None [ceph_deploy.cli][INFO ] verbose : False [ceph_deploy.cli][INFO ] overwrite_conf : False [ceph_deploy.cli][INFO ] quiet : False [ceph_deploy.cli][INFO ] cd_conf : &lt;ceph_deploy.conf.cephdeploy.Conf instance at 0x7fbd48a4df80&gt; [ceph_deploy.cli][INFO ] cluster : ceph [ceph_deploy.cli][INFO ] ssh_copykey : True [ceph_deploy.cli][INFO ] mon : ['ses-node1'] [ceph_deploy.cli][INFO ] func : &lt;function new at 0x7fbd48a285f0&gt; [ceph_deploy.cli][INFO ] public_network : None [ceph_deploy.cli][INFO ] ceph_conf : None [ceph_deploy.cli][INFO ] cluster_network : None [ceph_deploy.cli][INFO ] default_release : False [ceph_deploy.cli][INFO ] fsid : None [ceph_deploy.new][DEBUG ] Creating new cluster named ceph [ceph_deploy.new][INFO ] making sure passwordless SSH succeeds [ses-node1][DEBUG ] connected to host: ses-admin [ses-node1][INFO ] Running command: ssh -CT -o BatchMode=yes ses-node1 [ses-node1][DEBUG ] connection detected need for sudo [ses-node1][DEBUG ] connected to host: ses-node1 [ses-node1][DEBUG ] detect platform information from remote host [ses-node1][DEBUG ] detect machine type [ses-node1][DEBUG ] find the location of an executable [ses-node1][INFO ] Running command: sudo /bin/ip link show [ses-node1][INFO ] Running command: sudo /bin/ip addr show [ses-node1][DEBUG ] IP addresses found: ['192.168.100.11', '192.168.200.11'] [ceph_deploy.new][DEBUG ] Resolving host ses-node1 [ceph_deploy.new][DEBUG ] Monitor ses-node1 at 192.168.100.11 [ceph_deploy.new][DEBUG ] Monitor initial members are ['ses-node1'] [ceph_deploy.new][DEBUG ] Monitor addrs are ['192.168.100.11'] [ceph_deploy.new][DEBUG ] Creating a random mon key... [ceph_deploy.new][DEBUG ] Writing monitor keyring to ceph.mon.keyring... [ceph_deploy.new][DEBUG ] Writing initial config to ceph.conf... cephadm@ses-admin:~&gt; Creation de pool pool name number of placement groups : (nber of OSD * 100 ) / nber of replicas pool size : 2,10 g take 20 g of storage and 20 g of netw transfert pool size : 3,10 g take 30 g of storage and 30 g of netw transfert =&gt; il vaut ;ieux bcp de petits data pool plutot qu un gros rados attaque en direct le pool sans passer par la couche osd default, replicate all datas =&gt; full replication, 3x stockage et bande passante RDB Storage pour avoir du block storage, il faut creer une image d abord puis ;appe en block device format1 or 2 =&gt; 2 support snapshots rbd create, puis map pour connect si besoin, faire le pool avant rbd create -p poolname rdbimagename --size xxx --image format 2 size en mb par defaut rbd list cephadm@ses-admin:~&gt; ceph osd map test myobj osdmap e23 pool 'test' (1) object 'myobj' -&gt; pg 1.c3ca3d86 (1.6) -&gt; up ([2,1], p2) acting ([2,1], p2) cephadm@ses-admin:~&gt; ceph osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 0.04376 root default -2 0.01459 host ses-node1 0 0.01459 osd.0 up 1.00000 1.00000 -3 0.01459 host ses-node2 1 0.01459 osd.1 up 1.00000 1.00000 -4 0.01459 host ses-node3 2 0.01459 osd.2 up 1.00000 1.00000 cephadm@ses-admin:~&gt; ceph osd pool set test size 3 set pool 1 size to 3 cephadm@ses-admin:~&gt; ceph osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 0.04376 root default -2 0.01459 host ses-node1 0 0.01459 osd.0 up 1.00000 1.00000 -3 0.01459 host ses-node2 1 0.01459 osd.1 up 1.00000 1.00000 -4 0.01459 host ses-node3 2 0.01459 osd.2 up 1.00000 1.00000 Mapping pour utilisation en direct persistence de mapping se fait dans fstab cephadm@ses-admin:~&gt; rbd create -p block-pool block-storage --size 1024 cephadm@ses-admin:~&gt; rbd -p block-pool info block-storage rbd image 'block-storage': size 1024 MB in 256 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.108f238e1f29 format: 2 features: layering flags: cephadm@ses-admin:~&gt; sudo su - ses-admin:~ # cat /etc/fstab UUID=a8cecc6a-ed55-45ec-9092-08cccd1d1fa5 swap swap defaults 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb / btrfs defaults 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /boot/grub2/i386-pc btrfs subvol=@/boot/grub2/i386-pc 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /boot/grub2/x86_64-efi btrfs subvol=@/boot/grub2/x86_64-efi 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /home btrfs subvol=@/home 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /opt btrfs subvol=@/opt 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /srv btrfs subvol=@/srv 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /tmp btrfs subvol=@/tmp 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /usr/local btrfs subvol=@/usr/local 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/crash btrfs subvol=@/var/crash 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/lib/libvirt/images btrfs subvol=@/var/lib/libvirt/images 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/lib/mailman btrfs subvol=@/var/lib/mailman 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/lib/mariadb btrfs subvol=@/var/lib/mariadb 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/lib/mysql btrfs subvol=@/var/lib/mysql 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/lib/named btrfs subvol=@/var/lib/named 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/lib/pgsql btrfs subvol=@/var/lib/pgsql 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/log btrfs subvol=@/var/log 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/opt btrfs subvol=@/var/opt 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/spool btrfs subvol=@/var/spool 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /var/tmp btrfs subvol=@/var/tmp 0 0 UUID=f809d9df-cc52-43e0-a42c-3f2c8ee680eb /.snapshots btrfs subvol=@/.snapshots 0 0 ses-admin:~ # rbd map -p block-pool --image block-storage /dev/rbd0 ses-admin:~ # rbd showmapped id pool image snap device 0 block-pool block-storage - /dev/rbd0 ses-admin:~ # ls /dev/rbd* /dev/rbd0 /dev/rbd: block-pool Snapshot sans overhead rbd snap (etc) Copy on write snapshot layering, i;age au for;at 2 obligatoirement mais les snapshots sont alors indispensables, i faut les proteger avec la fonction lock rfc3720 for iscsi json configurqtion quthenticqtion to iscsi authentication https://www.suse.com/docrep/documents/kgu61iyowz/suse_enterprise_storage_3_and_iscsi.pdf ses-node3:~ # targetcli ls o- / ..................................................................................................... [...] o- backstores .......................................................................................... [...] | o- fileio ............................................................................... [0 Storage Object] | o- iblock ............................................................................... [1 Storage Object] | | o- iscsi .................................................................. [/dev/rbd/rbd/iscsi activated] | o- pscsi ................................................................................ [0 Storage Object] | o- rbd .................................................................................. [0 Storage Object] | o- rd_mcp ............................................................................... [0 Storage Object] o- ib_srpt ....................................................................................... [0 Targets] o- iscsi .......................................................................................... [1 Target] | o- iqn.2003-01.org.linux-iscsi.ses-node3.x8664:sn.76494aa74ebc ..................................... [1 TPG] | o- tpg1 ........................................................................................ [enabled] | o- acls ....................................................................................... [0 ACLs] | o- luns ........................................................................................ [1 LUN] | | o- lun0 .......................................................... [iblock/iscsi (/dev/rbd/rbd/iscsi)] | o- portals .................................................................................. [1 Portal] | o- 192.168.100.13:3260 ........................................................... [OK, iser disabled] o- loopback ...................................................................................... [0 Targets] o- qla2xxx ....................................................................................... [0 Targets] o- tcm_fc ........................................................................................ [0 Targets] o- vhost ......................................................................................... [0 Targets] erasure code profile une sorte de qos pour econo;iser du reseau pour limiter les controles d integrite chaque erreur part dans une sorte de poubelle cephadm@ses-admin:~&gt; ceph osd erasure-code-profile get default k=2 m=1 plugin=jerasure technique=reed_sol_van exemple k+m (10+6), on peut perdre 6 sur 16 disks (totalite des disques) 10 disks requis prend 60% de capacite attention aux perf, se rapproche d un raid6 si erasure profile fixe, ne peut pas etre change utile sur des donnes chaudes/donnees froides/cout de stockage ceph status : look at placement group ex : recovering en bas de page monitor : health, mon quorum, osd status, pg status, full disk, nodes status =&gt; ceph health =&gt; ceph status cephadm@ses-admin:~&gt; ceph -w cluster 9a5b2edf-4d00-4b46-a010-3420d96450e5 health HEALTH_WARN too many PGs per OSD (408 &gt; max 300) monmap e3: 3 mons at {ses-node1=192.168.100.11:6789/0,ses-node2=192.168.100.12:6789/0,ses-node3=192.168.100.13:6789/0} election epoch 6, quorum 0,1,2 ses-node1,ses-node2,ses-node3 osdmap e57: 3 osds: 3 up, 3 in flags sortbitwise pgmap v3256: 408 pgs, 15 pools, 70949 kB data, 505 objects 322 MB used, 45724 MB / 46046 MB avail 408 active+clean ceph calamari backend, romana frontend inclus avec suse enterprise storage install calamari puis deploy --master monitoring-mode alaister@suse.com&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Notes Sysadmin Days #6 - Paris</title>
		<link>https://www.coincoin.fr.eu.org/?Notes-Sysadmin-Days-6-Paris</link>
		<guid isPermaLink="true">https://www.coincoin.fr.eu.org/?Notes-Sysadmin-Days-6-Paris</guid>
		<dc:date>2016-02-18T14:20:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne aka DaffyDuke</dc:creator>


		<dc:subject>linux</dc:subject>
		<dc:subject>bigdata</dc:subject>

		<description>
&lt;p&gt;*on est pas l&#224; pour vendre de la magie, 8 ans de conf* &lt;br class='autobr' /&gt;
# sysadmin de combat (FRED DE VILLAMIL) attention au budget divergence de priorit&#233; =&gt; &#034;redonner confiance dans l'infrastructure&#034; 50/50 scrum+run, planif ve pm, daily standup mach. caf&#233; astreinte tournante, toujours donner une date pour le delivery les dev font la MEP via jenkins+ansible (=&gt; java / go) monte une &#233;quipe s&#233;nior (pour ne pas faire de micromanagement, mont&#233;e en comp&#233;tence rapide) profil cher entre 50/90 attention (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.coincoin.fr.eu.org/?-Au-boulot-" rel="directory"&gt;Au boulot&lt;/a&gt;

/ 
&lt;a href="https://www.coincoin.fr.eu.org/?+-linux-+" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://www.coincoin.fr.eu.org/?+-bigdata-+" rel="tag"&gt;bigdata&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;textarea readonly='readonly' cols='40' rows='586' class='spip_cadre spip_cadre_block' dir='ltr'&gt;*on est pas l&#224; pour vendre de la magie, 8 ans de conf* # sysadmin de combat (FRED DE VILLAMIL) attention au budget divergence de priorit&#233; =&gt; &#034;redonner confiance dans l'infrastructure&#034; 50/50 scrum+run, planif ve pm, daily standup mach. caf&#233; astreinte tournante, toujours donner une date pour le delivery les dev font la MEP via jenkins+ansible (=&gt; java / go) monte une &#233;quipe s&#233;nior (pour ne pas faire de micromanagement, mont&#233;e en comp&#233;tence rapide) profil cher entre 50/90 attention communication =&gt; slack incidents (uniqt chef du support, transparence, sans alaramant, ETA pr&#233;cis si possible) reporting hebdo de 3/4 slides (contexte d'une p&#233;riode de crise d'un an pour remonter un cluster galera), nb incidents, heures d'inter, .... et ETA projets d&#233;couverte : monitoring, nmap+ssh+facter &#034;pour voir&#034; dans un CSV / tcpdump sur des fw/ansible , attention puppet/ansible d&#233;but: rester humble, laisser ce qui marche et ceux qui savent faire, test de red&#233;marrage de services &#034;pour voir&#034;, &#034;se concerter sur ce qu'on ne connait pas et qui marche plut&#244;t que sur ce qu'on connait mais qui ne marche pas&#034; Documentation (interne Zabbix) Attention aux env. non ma&#238;tris&#233;s Dificult&#233; de reprises d'unfra mont&#233;e par des dev qui &#034;pensent&#034; diff&#233;remment : un mach/un service pas de vhost/ .... ## questions confluence, gitlab (markdown) essayer de d&#233;l&#233;guer SAS au possible &#034;tu bosses le week-end&#034; pour tenir tes ETA besoin d'&#234;tre capable de dire &#034;non *plus tard*&#034; jira pour sprints (redmine abandonn&#233;), &#034;pager duty&#034; &#224; venir Gandi =&gt; Trello pour daily meeting revue de doc/code review par gitflow troll AWS : utilisation d'autoscaling pour les machines qui tombent toute seule troll OVH : couche ethernet revue et corrig&#233;e # Grid 5000, Lucas Nussbaum, a hpc, big data, INRIA, universit&#233; de Lorraine Debian Project Leader de 2013,15 Licence Pro Adm. Sys R&#233;seaux App. Logiciels Libres Recherche sur exp&#233;rimentation scientifiques essaie de fournir une infra de qualit&#233; comparable aux autres composants de recherche (biologie, physique, ....) renater 10g 10 sites, 25 cluster, 1000 nodes, 8000 cores 550 personnes difficult&#233; de cloud public (difficult&#233; de monitoring, placement, perf) utilisation de BonFIRE (infra dedi&#233; observation) bare metal as a service, reconfigurable &#224; la demande desc. env. en json avec archivage de conf utilisation outil maison g5-checks pour comparer desc stock&#233;e avec desc g&#233;n&#233;r&#233;e (appel OHAO, ethtool, ....) besoin GPU, wattmetter, software, garder stable cr&#233;ation de kadeploy (bare metal, hardware as a service), boot en PXE, 200 nodes en 5 min(car deux reboots hardw) KaVLAN pour tagguer les r&#233;seaux sur les &#233;quipements r&#233;seau http://kamaleon.imag.fr : generation d'appliance (avec utilisation de cache des images &#233;talonn&#233; / archiv&#233;es) http://distem.gforge.nria.fr : utilisation de LXC pour quotas de CPU/Core Utilisation Charm++ lb HPC avec distem &#034;Ralentir le temps pour que le CPU et le r&#233;seau aille plus vite&#034; : Time Keeper (facteur de dilatation du temps de LXC) sous Linux ou dilatation du temps (DieCast sous Xen) time shifting en roadmap monitoring en mode d&#233;couverte avec Ganglia + sondes r&#233;seau/DPU/... utilisateurs = doctorants, &#233;tudiants M2, ...., =&gt; shell =&gt; cr&#233;ation d'une API d'orchestration XPFLOW env. unique au monde de support d'exp&#233;rimentations ## questions pas de pb sur mesure 1/sec sur switchs Ironic (OpenStack) vs Kadeploy (plus vieux, plus de fonctions) criu.org =&gt; checkpointing de jobs =&gt; appeler Master I2L pour reorienter AsminSys si possible # ElasticSearch chez Synthesio par Fred De Villamil Synthesio: parcours de site social, enrichissement de donn&#233;es 271To de cluster, 7 To de RAM, 3 cluster, 116 serveurs, 60 milliards de doc index&#233;s Elasticsearch : moteur de rechcerche distribu&#233; bas&#233; sur Lucene, base sur &#034;Solr on steroid&#034;, ancien nom Comment : 1 index, 512 chards avec un routage au mois (au lieu de la semaine nitialement), 47 deian en java 1.8 =&gt; dashboard1GC / GCPausIntervalMillis=1000 / InitiatingHeapOccupancyPercent=35 =&gt; plus d'out of the world =&gt; tuning field data : limit ) 80% sur breaker, 30% de cache size sur la heap, expire 1 minute : options deprecated dans le futur D&#233;conseill&#233; par la doc ES, pas vu de pb de perf, plus de perte du cluster step2, 1 index par dashbpoard pour 10 milliards de documents 2 clusters iso en ES 1.7.5 (1.7.4 bug de memoire grave) 2 VM ) 64 G de RAM 3 master, 3 de RAM 0 nodes&#224; 32 G RAM 1 inde par dashboard, 1 shared =&gt; versionning du mapping possible grace &#224; Baldur Baldur = proxy nginx en LUA (r&#233;cup cluster + id de mapping en base MySQL) =&gt; modification de mapping se fait dans la base mysql alors que les data sont en cours de traitement cot&#233; cluster et donc cr&#233;ation de milliers de segments lucene cr&#233;ation de plus de seglents que de suppression, donc les index peinaient &#224; &#234;tre construit =&gt; otpim en continu sur ordre deleted + sur index x-1 =&gt; utilisation de &#034;rack awareness&#034; ES : blocage d'allocation pendant un A/R par rack Nouveau cluster : 70 serveurs 36 index 50 milliards de documents 120 T de donn&#233;es, 160 T de capa, 1 idx/mois, 30 shards 2 query nodes 31 G 62 data node en Xeo D, 64 G RAM, 3,2 T RAM 3 cluster galera et un cluster ES dans un kafka indexer en Go sur 8 machine et doit r&#233;cup&#233;rer une queue par an sur le data node pour l'idexation sans passer par le query pas de replicat pendant l'indexation pour diminuer les ressources ES tente de mettre les requetes en cace sur les requettes en lectures (pb de cache si range , utilisation de YourKit pour debugger la heap au crash dump (&#224; cette epoque 1.7.4 =&gt; passer en 1.7.5 !) =&gt; d&#233;sactivation des caches + parall&#233;lisation des requetes par index next : 50 millions de doc/jour (plus de sphynx, maintenant utilisation de percolation = indexation invers&#233;e dans ES) 35000 rq &#224; tester, en percolation on a une estimation de 1700 milliards de req =&gt; routage sur la langue des documents , objectif 100 000 req/sec ## questions ES en 2 ? pb de r&#233;&#233;criture de query (DSL de sphynx vers ES d&#233;j&#224; fait, &#224; refaire pour passer en ES2) pas d'&#233;tude d'autre soft par comp&#233;tence monotiring ; marvelpour le temps r&#233;el (marvel pour monitorer + cluster de monitoring de marvel lui-m&#234;me) ; le reste est graff&#233; par Zabbix sauvegarde / archivage ? non car toute la donn&#233;e brute est dans mysql (25 To dans un Galera), ES n'est pas pr&#233;vu pour stocker, ce n'est pas MongoDB snapshot ? S3 ou N/Z/.../FS : 10 To trop gros pour g&#233;rer des snapshots Utilisation de plugin d'analyse linguistique tels stemmer chiffrement inter noeud : non =&gt; &#233;tude FS chiffr&#233; pas d'ACL sur ES unicast conso de disques SSD de plu sen plus importante OVH ; coupure &#233;lectrique ou r&#233;seau : systeme de maitre / quorum =&gt; donc pas de soucis sur ES. plus de corruptions de donn&#233;es depuis la 1.0 # Puppet at Gandi, Aur&#233;lien Rouhemont, Arthur Gautier Equipe de 15 personnes puppet = QUE un gest de conf = framework, pas grand chose out of the box pas un orchestrateur, pas la &#034;silver bullet&#034;, ce n'est pas l&#233;ger Gandi, pourquoi ? pull model (se fait pas viol&#233; par un SSH de l'externe) ; promise theory (mark de cfengine), en 2009 pas grand chose, utilisation master , DSL simple, pas besoin de conna&#238;tre le ruby, descriptif pour aller vers un &#233;tat final (si d&#233;claration de d&#233;pendances), populaire Configuration Management chez Gandi : avant 2009 : Makefile, package, Awk, 2009 : premier repo puppet SVN alors que personne ne faisait de ruby 2010 : pas de module, un site.pp 2011 : r&#233;flexions hiera et template (module + conf. ext&#233;rieure) 2013 : pas d'upgrade puppet 3.x possible 2014 : g&#233;n&#233;ration de monitoring dans puppet (il g&#233;n&#232;re la conf pour la pf de monitoring : nagios, thrunk) 2015 : en 10 jours, r&#233;&#233;criture de 250 modules puppet en 3.7 2016 : orchestration Ouverture aux d&#233;veloppeurs, merge request, depuis 2013 Comment ENC : MySQL + insertions + Perl =&gt; utilisation d'un YAML &#224; partir de 2015 Facts Matters : meta comm eun autre pour d&#233;finir des groupes de serveurs, ce n'est pas natif, il faut penser &#224; la faire, ,notion de flavor = sous groupe de farm savoir si un module est utilis&#233; =&gt; au d&#233;but pas de forge puppet (coup d'entr&#233;e assez cher pour du non ruby fluent), exemple42 pas dispoi &#224; l'&#233;poque, cr&#233;ation d'un templae de module : init.pp, install.pp (packages uniq), config.pp, files.pp, cron.pp, service.pp : conv. de nommage de variable depuis hiera dans l'init.pp (cron.pp : gestion de cron au lien symbolique) un rep temlate par flavor coding style human readable !, code portable, utilisation de best practices, ex files = collection d'object, pas un objet 20 &#224; 60% de perf mieux sur gros catalogues de file sjusqu'en 2.7 hiera as datasource nodes / farm, datasource, room, etc ... puppet vanishment history &#224; voir sur puppetlabas dynamic variaable scoping sad panda =&gt; tig (arbre git) =&gt; 250 branches git : taken.owner, taken.done pour ne pas se marcher dessus datatypes mieux cod&#233;es avec stdlib hiera merging policy =&gt; le change est devenu merge (ex sur acl) gitlab pour repo coupl&#233; &#224; un jenkins puppet linting + rule du gandi module layout + syntax validation + yaml validation + erb syntax validation passage 3.7 a uniformis&#233; le niveau d'admin puppet puppet environment=&#034;mergerequest&#034; utilisation d'un git merge --no-comit jenkins appelle le puppet-lint erb -P -x -T file.rb pupeet-db =&gt; json =&gt; jinja =&gt; nagios mcollective fait le puppet run mcollective joli mais fragile version web de hiera =&gt; hieraviz pour lire la base hiera : id&#233;e &#233;crire depuis hieraviz https://github.com/gandi/hieracles Etude d'impact en cours alias puppet status, puppet lock + motif + Conclusion puppet n'est pas un orchestrateur =&gt; ansible ? abandonner le tas de yaml avec une API / CMDB ## question reporting : foreman, mais pas plus que &#231;&#224; envisag&#233; : consul ? hitop (en php) ? modules fait maison uniquement pour l'instant puppet4 : pb des modules tout fait puppet enterprise : idem, pas de forge dump d'inventaire &#224; partir du DNS, attention aux alias itop trop gros par rapport aux besoins un puppet master de production, utilisation des environnements plusieurs run pour passage OK parfois et tol&#233;r&#233; =&gt; voir le &#034;puppet virtual nodes&#034; pour le test de code puppet # Blocage dynamique de pages web (Fr&#233;d&#233;ric Vanni&#232;re, planet-work.com) NGINX/LUA 400 machines, virtu, Freebsd pour les backup 10000 sites, 30% wordpress =&gt; spam, phishing stockage sur Netapp en NFSv3 Archi NGINX en front reverse proxy (apache tient peu la charge sur ce besoin), statiques h&#233;berg&#233;es en front Solution OpenResty = module NGINX + LUA Cl&#233; valeur de blacklist via DNSBL blaclist.conf : conf dnsbl g&#232;re le blocage + deblocage par mot de passe pour l'acc&#232;s client D&#233;tection : gestion des logs via rsyslog centralis&#233; (en rfs5424) - stack ELK : (logstash 1.4 fragile aux caract&#232;res mal encod&#233;s) - tests HekaD (projet Mozilla, en go, multithreads, sandbox LUA) (&#233;crit dans un elasticsearch) : attention une fois le msg trait&#233;, plus d'alt&#233;ration possible. Pr&#233;vu pour la m&#233;trologie : collectd-&gt;aggreg-&gt;influxd =&gt; cr&#233;ation d'un flitre sandbox LUA =&gt; openresty &lt; 3 avec validation auto Let's Encrypt : script python tiers (cloudflare) pour v&#233;rifier les expiation http://pw.fr recrute sur Paris / Rennes (l'an prochain) 5 techos &#034;on est pas l&#224; pour vendre de la magie, 8 ans de conf&#034; ## questions Quid de la rotation : perte possible mais NGNINX, permi Pas de pb de perf sauf sur ES # Gestion des services par Gandi (Fabrice Daroussin) pr&#233;sentation,attention aux m&#233;langes watchman launchd systemd openrc upstart (tous vivant) init historique : petit, process pere de tous les processus, ne gere pas la gestion des services (inittab ou ttys de freebsd) puis d&#233;l&#232;gue &#224; sysvinit, rcng (freebsd), rc (openbsd) Mais pas de cycle de vie, pas de moyen que le service est rendu, difficile d'assurer la coh&#233;rence entre les scripts d'init, pas de gestion de ressources (RAM, CPU, sandbox de l'OS, ....) supervision par un pid uniquement (souvent loup&#233; pour lemonitoring si double fork) gestion des d&#233;pendances faibles framework, souvent en shell (posix, bash, zsh) ex: Dabian Dash gestion d'erreur en shell pas simple car trap etc .... complexe &#224; isoler (/etc/init.d/truc start) (mais pb sur les variables d'enrionnement) =&gt; comman de service pour contr&#244;ler variables d'environnement (pr&#233;sente sous Linux, FreeBSD, systemd) complexe pour coh&#233;rence multi OS (m&#234;me multi Linux) pas de gestion de performances ni de surveillance de processus fiabilit&#233; al&#233;atoire du status (souvent que le p&#232;re) pas de gestion d'&#233;v&#232;nementielle (ex cupsd uniquement si printer) ex : inetd evenement =&gt; udev =&gt; script de service =&gt; latence pas de fault management (ex les workers apaches en failed) difficile de faire un d&#233;mon : user non privil&#233;gi&#233;, attention au chroot sans chdir, refaire un setrlimit (mais chacun veut le faire) (s attention aux parents laxistes qui abandonnent leurs enfants (apache et fiston) peu de parall&#232;le de service, trous dans les logs Solutions : PID via process descriptor FreeBSD 10.0, Linux 4.1 : polling de race reapers (garder les trace des fils) : Linux 3.4 (dbus), Solaris 10 (contracts), FreeBSD10.2, Dragonfly 4.0 : un service pour d&#233;marrer les services apache Services : G&#233;nerer les services via sandboxing R&#233;activit&#233; : devd envoi sans parser tous les scripts Format pas important ; description yaml, json, ini, ....mais la description est importante Gestion des sockets pour s&#233;paration de privil&#232;ges, ex bufferisation de logs si syslog cass&#233; Utiliser un IPC (s&#233;parer les taches) =&gt; remplacer init ? pas utile, aucun service actuel ne g&#232;re toutes les demandes vues ici ? SMF (Solaris) g&#232;re le monitoring (mais Over engineer) a conserv&#233; init, cron, ...., fault management R&#233;f&#233;rences : do_command.c de Paul Vixie Solaris Service Management Facility Modern System Startup ## questions systemd : approche, manquant &#224; SMF : le pid pere est encore crucial, pas encore de tracabilit&#233; de fils car utilise les cgroups # Linux Crashdump analysis - Adrien Mahieux, github.com/Saruspete Kernel Recipes 2015 crashdump / kdump : snapshot de la m&#233;moire en cours, principalement Linux, sysadmin se fait via kexec &amp; panic 64 &#224; 512 M de RAM vmware : suspend , vmss2core libvirt : virsh dump guest Get : kernel config KEXEC=y .... bootoption : crashlernel=auto (auto = X@Y r&#233;&#233;cri) indiquer un masque sur pages priv&#233;es, userland, .... dump entre 100M et 2G si utilisation intensive impi power diag (NMI via IPMI) virsh inject-nmi guest attention au kernel.unknown_nmi_panic=1 =&gt; car le code NMI n'est pas le m&#234;me pour tous les constructeurs mais peut etre en conflit avec ooprofile OOM : vm.panic_on_oom=1 Analysis : crash via Dave Anderson de RedHat (gdb) RedHat : debuginfo-install kernel Debian : apt-get install linux-image-$'uname -r)_dbg m&#234;me commandes que dans gdb (bt ....) Live kretprobes : CONFIG_STRICT_DEVMEM savoir si on sait lie sur /dev/mem OpenGrok fast code source browser voir makedumpfile sur chitranshi fence kdump sur ovirt.org ## questions un red&#233;marrage via kexec, puis un red&#233;marrage normal # Performance Analysis, fro msilicon to algorithm (microsecund hunter) sysadmin : utiliser des algo pour contourner des pb hardware, tuning d'appli, .... besoin de bien conna&#238;tre le client, protocoles, .... attention au ratio gain / co&#251;t Souvent regarder c&#244;t&#233; application pour optim' Comment &#231;a marche ? balance d'&#233;l&#233;ments storage lent : ajout redahead ou RAM network : offload, DMA RAM slower than CPU, add L1/L2/L3 cache video : utilisation GPU .... memory management : m&#233;chanismes de segmentation MMU : @locique : segmentation =&gt; virtual pagination =&gt; physical allocation kernel linux overcommit (resident 100m versus allocation 17 Go) =&gt; overcommit attention OOMKiller qui lib&#232;re dec RAM (algo plu sou moins heureux), score tunable via /proc/&lt;PID&gt;/oom_score/adj buddy allocator : ex plusieurs giga lobres mais mem fragment&#233;e, car meme pas utilisable si pas contigue =&gt; utilisation du SLAB cache pour limite la fragmentation : CPU : kernel scheduler, via la variable HZ ticks gene&#232;re les jobs : context switch userland =&gt; syscall =&gt; libc (wrappers) open,malloc,mmap =&gt; gates : possible d'acc&#233;l&#233;er via VDSO (gettimeofday, ....) R&#233;seau : ethtool -g &lt;int&gt; : taille du ring buffer (DMA) en RAM et gn&#232;re une interruotion optim harware (plusieurs queue sur carte 10 G), voir le blog de Claude Feder Storage IO sont en syscall, scheduler d'IO &#224; observer coherence en terme de cohrence ZFS et BTRFS pas de VFS, ext/xfs/ oui .... puis elevator donne request queue : cfq defaut), deadline : garanti le wait (databases) , noop (SSD) mmap : bcp overhead mais rapide Mesurer 'Use method) : Brendan Gregg Netflix (auteur de netflix) utilization actuelle, quelle est la saturation, quelles sont les erreur sampling : ps, top, perf tracing : auditd, ktrace, systemtap, gdb conter : intel pcm, numastat, user feedback rappel des slides netflix Quoi faire rapide, robuste, pas cher, jamais possible d'avoir les 3 * latence : tps de traitement de signal : isolcpu, ou nohz_full (desactiv les tick, attention &#224; irqbalance =&gt; attention &#224; la dacdrer ou le d&#233;sactiver , / d&#233;sactiver le coalescing / attention au readahead, penser &#224; le d&#233;sactiver, compression (ZFS: cout een CPU mais &#233;conomise en stockage) fibre optique c'est lent : sniperinmahwah.wordpress.com (hyperthreading haute fr&#233;quence) =&gt; la lumi&#232;re est rapid dans le vide uniquement * d&#233;bit : difficile car li&#233; &#224; chaque comppsant disk, r&#233;seau, aute (ex: chunk size, jumbo fram, en gros plus il y a de RAM, mieux &#231;a marche) * jitter : industriel, realtime, moteur carburant / air, pr&#233;cis et fiable, ex un thread kernel au lieu d'un thread kernel par CPU : isolcpu, nohz_full, ... A la recherche des probl&#232;mes perf et les flamegraph version de pagefault ou diff flamegraph systemtap : utilise les debuginfo comme crashdump : g&#233;n&#232;re du code C et injecte dans le kernel Et le hardware * CPU Interl PCM (performance counter monitor) intel.com/ peformance ... MSR : Model Specific Register: module msr pour la RAM, trop tard, maintenant c'est le CPU qu ig&#232;re on peut avoir les erreurs ECC avec dmidecode * NIC : DPDK OpenFabric : kernel bypass; Infinibands &#233;crit dans la RAM des voisins ## questions moyen de voir si c-state activ&#233; ou pas : cpufreq (cpupower monitor) i7z : lit les donn&#233;es relatives &#224; la freq du CPU powertop : applis qui g&#233;n&#233;r&#233; interruptions, wakeup tuned : fait le job, mais fait trop de chose qu'o ne veut pas forc&#233;ment si processeur change de socket, pas forc&#233;ment besoin de RAM en RAID, mais pb sur m&#233;morie cache CPU, donc int&#233;r&#234;t &#224; garder les proces sur le m&#234;me coeur (isolcpu) FreeBSD : &#233;quivalences ? voir la map de Brendan Greg existe aussi pour Solaris ## Retour d'exp&#233;rience sur un scan de d&#233;tection de malware sur une infrastructure h&#233;bergeur, par Julien Reveret, NBS Systems Projet d'actualit&#233; : nettoyage du canal saint-martin (pneus, matelas, ....), =&gt; machines clients idem Dev. internes : Julien Voisin, PHP-malware-finder bas&#233; sur yara (d&#233;tecter les malwares les plus courants uniquement) ex. beaucoup de bruit, puis analyse par un humain, un seul fichier avec malware autres faux positifs =&gt; identification par hash cryptographique : liste blanche &#224; partir des faux positifs =&gt; pouss&#233; sur github.com/nbs-system/php-malware-finder R&#233;sultats : machines avec infections dormantes (une dizaine), des faux positifs ; du faux positif, de la whitelist et finalement trouv&#233; un webshell alors qu'il &#233;tait PCI-DSS ! ; un module tiers magento ressemblant &#224; un malware ; divers webshell Beaucoup de craptographie chez les d&#233;veloppeurs PHP :-) Temps de traitement : 7 heures pour 100 machines en NFS ## questions A t'on le droit d'ouvrir les fichiers des clients =&gt; ici oui, audit de code d&#233;j&#224; pr&#233;vue Netapp : utilsation de fpolicy sur fichiers modifi&#233;s ? =&gt; &#224; voir supervision ? pas encore # Nouveaut&#233;s de FreeBSD 11 Baptsite Daroussin (probablement inclut en 10.3 beta) fin ia64, ajout arm64 et risc-V ; improve ARM : dtrace &amp; more CloudABI = format binaire cross OS sandbox&#233; mais d&#233;pendant de l'arch, enregistr&#233; au niveau de posix pour avoir le num&#233;ro elf associ&#233;, toolchain : lldb par d&#233;faut amd64 migration binutils vers Elftoolchain (sauf ld network : plus de support IPX et appletalk, new version netmap (&#233;mulation de n'importe quel driver r&#233;seau), modularisation stack TCP, et ajout de TCP fastpath (possibilit&#233; de swither) storage : am&#233;liorations perfs NFS et &#034;cable control layer, iSCSI), am&#233;liorations ZFS, I/O throttling dans des jails maintenant possible + HA en iSCSI (actif-passif) ; module sendfile r&#233;&#233;crit par Netflix Virtu : Xen dom0 (support domU) , bhyve (hyperviseur natif issus de Netapp) : peut booter du Linux et m&#234;me Windows, Illumos ou Dragonfly via &#233;mulation UEFI ; HyperV guest tr&#232;s am&#233;lior&#233; ; jails : ajout d'arg. CARP sur ip4/ip6.addr si vnet uniquement, top et ps &#233;mul&#233; Nouveaut&#233;s : fstyp, devctl, uefisign, sesutils (equiv sg3-utils), numactl, autofs (automontage d disque dans les VM BSD chez Gandi en cas d'ajout de volume), casperd (sandboxing capxicon), mprutils/mpsutils (utiliataires LSI equiv megacli) divers : support UEFI et GELI sur loader, support de Boot Environment dans le loader, groff remplac&#233; par mandoc ; m&#234;mes bases de locales que Linux ; maintenant linux64 ; ajout de Dragonfly Mail Agent (sendmail off) Kernel crash dump chiffr&#233;s package de la base Arriv&#233;e 27/07/2016 ## questions support multi-&#233;cran : en court # Du syst&#232;me au r&#233;seau, histoire d'un coming-out Pourquoi ? bankable datacenter L2 vlan firewall core (backbone, bgp) acess (collecte, CPE) monde network assez ferm&#233; =&gt; peu de doc, peu de partage de connaissance, beaucoup de matos proprio et os proprio &#233;volutions parfois publiques plus de r&#233;seau humain (peering, op&#233;rateurs, aide DDOS, aller aux FRNOG) A venir automatisation : norme netconf =&gt; ansible, pyez, napalm SDN : pose questions de design L2less routeur opensource : DPDK, ou packet journey de Gandi , bird (un quagga like) switch open en cours de dev : OS open, chipset proprio (Broadcomm, Marvell, ....) JunOS ou pas =&gt; Cumulus (Debian modifi&#233;e), implem OpenSwitch &#224; venir&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Notes Suse Expert Day 2016 Paris</title>
		<link>https://www.coincoin.fr.eu.org/?Notes-Suse-Expert-Day-2016-Paris</link>
		<guid isPermaLink="true">https://www.coincoin.fr.eu.org/?Notes-Suse-Expert-Day-2016-Paris</guid>
		<dc:date>2016-02-03T14:04:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne aka DaffyDuke</dc:creator>


		<dc:subject>linux</dc:subject>
		<dc:subject>virtualisation</dc:subject>

		<description>
&lt;p&gt;rappel uber =&gt; moins de soustraitance shadow factu =&gt; shadow it &#034;docker, vous n'y &#233;chapperaez pas&#034; &lt;br class='autobr' /&gt;
SLES 12 SP1 Rappel cathedrale et le basard assurer stabilit&#233; et support6SP attendus + extended support = 13 ans find SLES 12 GA = 2016-06-27 presentation en mindmap maintenances systemd + wicked Ajouts : yast2-journal (journalctl de de systemd), SMT dans zypper now, SSO shibboleth teamd remplace bonding - &lt;br class='autobr' /&gt;
SP migration chang&#233;e pour Suse manger3 migration possible de 11SP3 &#224; 12SP1 gestion des (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.coincoin.fr.eu.org/?-Au-boulot-" rel="directory"&gt;Au boulot&lt;/a&gt;

/ 
&lt;a href="https://www.coincoin.fr.eu.org/?+-linux-+" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://www.coincoin.fr.eu.org/?+-virtualisation-+" rel="tag"&gt;virtualisation&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;textarea readonly='readonly' cols='40' rows='128' class='spip_cadre spip_cadre_block' dir='ltr'&gt;rappel uber =&gt; moins de soustraitance shadow factu =&gt; shadow it &#034;docker, vous n'y &#233;chapperaez pas&#034; SLES 12 SP1 Rappel cathedrale et le basard - assurer stabilit&#233; et support6SP attendus + extended support = 13 ans find SLES 12 GA = 2016-06-27 presentation en mindmap maintenances systemd + wicked Ajouts : yast2-journal (journalctl de de systemd), SMT dans zypper now, SSO shibboleth teamd remplace bonding - SP migration chang&#233;e pour Suse manger3 migration possible de 11SP3 &#224; 12SP1 gestion des extensions (cloud etc ....) migration possible et rrollback si pb (btrfs &amp; snapper) Note e, SP12SP1 : xend a &#233;t&#233; abandonn&#233; par la comminaut&#233; , pousse &#224; migrer vers libvirt possibilit&#233; via guestfs de passer de xen &#224; kvm OpenQA = clickodrome pour jenkins &amp; co , exemple - valider syst de fichiers, - pacjages, - benchs =&gt; GUI sur &#233;tat des test r&#233;alis&#233;, &#233;chou&#233;, autre .... JeOS = SLE pour virtu : 300 M (pas encore docker &#224; 25 M) Docker / SUSE &#034;facile de faire n'importe quoi&#034; pb de registtry docker io =&gt; prthus : rechereche authenticifaction Canal module docker de Suse pour avoir les images docker (12SP1 en mars) comparaison avec pulse u rutiliser portus, bien faire le docker login avant sinon part vers docker io par d&#233;faut destination &#224; pr&#233;ciser pendant le docker tag puis docker push virt-builder = gestion de cache d'image et personnalisation durant le download , &#224; venir image jeos en Suse SP2 \_&gt; ex modifier les password, format d'image disk, taille du disk, etc .... =&gt; faire du docker 2 libvirt Suse Manager 2016 Antoine Pierre Suses support RedHat, CentOS, SLES, provisionning VM, bare metal package management via channels et patchs \_&gt; ajout de configuration en plus des patchs, gestion des CVE, openscap \_&gt; en SM3 : ajout de gestion de configurations via SaltStack + souscriptions + monitoring (icinga int&#233;gr&#233; : deploiement auto des sondes en activant le monitoring depuis suse manager puis le push vers Nagios) Commandes via SALT? sans passer par OSAD Ex : gestion des LVM, v&#233;rifier des ports, firewall, etc ... salt-key -L = puppet cert list Besoin d'un d&#233;mon sur le client =&gt; besoin d'accepter les minions depuis suse manager monitoring avec des test d'hdparm par exemple Ajout d'un &#034;Remote command&#034; execution de coimma des via le serveur saltmaster jeux d ecommandes peuvent etre brid&#233;es via spacewalk =&gt; sorit mi 2016 Bonne spratiques en cours de travail (script de migration suse manager 2.1 vers suse manager 3, ) CEPH &#034;je vosu regarde droit dans les yeux, oui, vous pouvez mettre vos donn&#233;es l&#224; dedans&#034; Attention, pas de VM prod encore, pas assez d'IO pour cela stockage froid essentiellement A venir bient&#244;t : compression &#224; chaud, dedup, cluster FS, &#034; lopen source est farceur sur les noms, surtout ils prennent beaucoup de lsd&#034; A OSD / disk storage node = serveur x86 algorithme crosh pour CEPH 3 monitor / CEPH =&gt; trosis reference fichier SES2 : iSCSI + objet SES3 : asynchrone?, CEPH FS, NFS =&gt; Pierre ; CEPH et r&#233;plication dans espace de travail Owncloud Blog OS David Byte Suse =&gt; 10g de preference, bonding sur 5 cates rx OpenStack Suse Cloud 6 IAAS )&gt; PAAS )&gt; CAAS (container) software defined ravio release update &#224; partir de Suse CLoud 6 !!! HA syr EC Dept auto HA via OCF? Pacemaker HAWK2 admin pacemaker attention &#224; ne pas subir les contraintes des etudes openstack permet catalogue de services rapprochement de Pivotal (cloundfoundry) nova : EC2 pour instancier des VM dont l'image vient de Glance noca-docker : EC2 pour instancier des images dockers dans un Glance (au format adapt&#233;) pivotal &#233;marr&#233;es depuis nova Heat : orchestrateur OpenStack, c'est lui qu iorchestrera les container sur les les VM via kubernets ou swarns plugin magnum : baies kubernetes, baie rocketOS, .... et eat orchestre via nova =&gt; pas production ready crawbar = projet Dell initiallement, voir Fuel comme alternatove &#224; crawbar&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Notes pr&#233;sentation RedHat Satellite 6</title>
		<link>https://www.coincoin.fr.eu.org/?Notes-presentation-RedHat-21555</link>
		<guid isPermaLink="true">https://www.coincoin.fr.eu.org/?Notes-presentation-RedHat-21555</guid>
		<dc:date>2016-01-14T13:52:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne aka DaffyDuke</dc:creator>


		<dc:subject>linux</dc:subject>

		<description>
&lt;p&gt;Notion de content view au lieu des canaux Utilisation de la GUI Katello =&gt; surtout des API et hammer (foreman) Foreman = GUI Puppet, GUI Ansible undef Puppet2 ? Notion de manifest satellite =&gt; souscription via candlepin Agent katello + agent puppet Capsule (=proxy) peut aussi faire tftp + provisionning Organisation / m&#233;tier Renault Airbus 5000 serveurs sur 2 capsules (32 Go de RAM par satellite) Mise &#224; jour de 6.1 vers 6.2 =&gt; mise &#224; jour &#034;streamline&#034; &#224; condition de suivre les guidlines (ex : (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.coincoin.fr.eu.org/?-Au-boulot-" rel="directory"&gt;Au boulot&lt;/a&gt;

/ 
&lt;a href="https://www.coincoin.fr.eu.org/?+-linux-+" rel="tag"&gt;linux&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;textarea readonly='readonly' cols='40' rows='44' class='spip_cadre spip_cadre_block' dir='ltr'&gt;Notion de content view au lieu des canaux Utilisation de la GUI Katello =&gt; surtout des API et hammer (foreman) Foreman = GUI Puppet, GUI Ansible undef Puppet2 ? Notion de manifest satellite =&gt; souscription via candlepin Agent katello + agent puppet Capsule (=proxy) peut aussi faire tftp + provisionning Organisation / m&#233;tier Renault Airbus 5000 serveurs sur 2 capsules (32 Go de RAM par satellite) Mise &#224; jour de 6.1 vers 6.2 =&gt; mise &#224; jour &#034;streamline&#034; &#224; condition de suivre les guidlines (ex: Marcadona 6000 caisse sous Satellite) Canaux + git + fichiers =&gt; Satellite Notions de content view par dev/qa/prod =&gt; 1 capsule par env. Ex: une content view par classe, une composite contient n content view D&#233;mon policyd en plus (dashboard ?) Cloudforms pour le cashback et le monitoring IDM = freeipa, support&#233; dans RHEL en standard Satellite 6.1 = Katello GUI = Foreman 1 souscription smart unlimited / DC OK RedHat 5/6/7/SAP .... Notion de promotion de content view (rpm+conf puppet) Notion de canal fig&#233; en pulp sur release mineure possible, dans une content view CentOS est une version downstream de RedHat. 6/7 des salari&#233;s sont RedHat =&gt; RDO (OpenStack communautaire) CentOS est utilis&#233; pour &#231;a Plus d'erratas r&#233;guliers sauf pour ceux d'OpenStack Plus de support CentOS l&#224; o&#249; RedHat en faisait CentOS ne sera plus identique &#224; RHEL. Orchestrateur RedHat =&gt; CMP&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Notes pr&#233;sentation RedHat OpenShift</title>
		<link>https://www.coincoin.fr.eu.org/?Notes-presentation-RedHat</link>
		<guid isPermaLink="true">https://www.coincoin.fr.eu.org/?Notes-presentation-RedHat</guid>
		<dc:date>2016-01-14T13:50:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne aka DaffyDuke</dc:creator>


		<dc:subject>linux</dc:subject>
		<dc:subject>virtualisation</dc:subject>

		<description>
&lt;p&gt;OpenShift Origin Kubernates (Google) Docker Cloudforms =&gt; catalogue de service, chargeback, souscription &#224; pr&#233;voir pour g&#233;rer cloud public ex : d&#233;marre une instance openstack pour le provi openshift Participation &#224; l'Open Container &lt;br class='autobr' /&gt;
Connecteur pour SAP HANA Service ESB Param&#233;trage pour persistence du container ELK inclus dans OpenShift Filebit par d&#233;faut Plus aggr&#233;gation de m&#233;triques &lt;br class='autobr' /&gt;
Jenkins possible mais pas de base (ex un jenkins par projet) &lt;br class='autobr' /&gt;
Docker image =&gt; container =&gt; pod =&gt; (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.coincoin.fr.eu.org/?-Au-boulot-" rel="directory"&gt;Au boulot&lt;/a&gt;

/ 
&lt;a href="https://www.coincoin.fr.eu.org/?+-linux-+" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://www.coincoin.fr.eu.org/?+-virtualisation-+" rel="tag"&gt;virtualisation&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;textarea readonly='readonly' cols='40' rows='45' class='spip_cadre spip_cadre_block' dir='ltr'&gt;OpenShift Origin Kubernates (Google) Docker Cloudforms =&gt; catalogue de service, chargeback, souscription &#224; pr&#233;voir pour g&#233;rer cloud public ex : d&#233;marre une instance openstack pour le provi openshift Participation &#224; l'Open Container Connecteur pour SAP HANA Service ESB Param&#233;trage pour persistence du container ELK inclus dans OpenShift Filebit par d&#233;faut Plus aggr&#233;gation de m&#233;triques Jenkins possible mais pas de base (ex un jenkins par projet) Docker image =&gt; container =&gt; pod =&gt; node &lt;= registry policy par tag c'est kubernetes qui g&#232;re les expositions ex la BDD via TCP_3306 pour une appli de la registry interne, puis un autre pod si besoin juste ne faisant le lien vers le nom dui pod de la bdd (sous r&#233;serve qu'elle soit taggu&#233;e) haproxy en front pour faire du routage de nodes projet = namespace openshift (all in one dans origin) container build construit, DNS en wildcard g&#233;r&#233; par le bind interne sur la haproxy Versions d'&#233;valuations possibles sur 30/60/90j Openshift dans une VM (KVM jusqu'&#224; 40 container sur une VM de 8 Go de RAM) https://www.openshift.org/vm/ Cas clients La Banque Postale : kill ESX Amadeus amazon roadshow Exemple API oc login oc&gt;oc delete all --all&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Notes Susecon 2015 - Amsterdam</title>
		<link>https://www.coincoin.fr.eu.org/?Notes-Susecon-2015-Amsterdam</link>
		<guid isPermaLink="true">https://www.coincoin.fr.eu.org/?Notes-Susecon-2015-Amsterdam</guid>
		<dc:date>2015-11-02T13:55:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne aka DaffyDuke</dc:creator>


		<dc:subject>kernel</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>virtualisation</dc:subject>

		<description>

-
&lt;a href="https://www.coincoin.fr.eu.org/?-Au-boulot-" rel="directory"&gt;Au boulot&lt;/a&gt;

/ 
&lt;a href="https://www.coincoin.fr.eu.org/?+-kernel-+" rel="tag"&gt;kernel&lt;/a&gt;, 
&lt;a href="https://www.coincoin.fr.eu.org/?+-linux-+" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://www.coincoin.fr.eu.org/?+-virtualisation-+" rel="tag"&gt;virtualisation&lt;/a&gt;

		</description>


 <content:encoded>
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Notes pr&#233;paration RHCE</title>
		<link>https://www.coincoin.fr.eu.org/?Notes-preparation-RHCE</link>
		<guid isPermaLink="true">https://www.coincoin.fr.eu.org/?Notes-preparation-RHCE</guid>
		<dc:date>2015-10-30T11:21:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne aka DaffyDuke</dc:creator>


		<dc:subject>linux</dc:subject>

		<description>
&lt;p&gt;Pr&#233;sentation par Fr&#233;d&#233;ric C&#233;li&#233; &lt;br class='autobr' /&gt; Ins&#233;rer ici les notes &lt;br class='autobr' /&gt;
Pr&#233;paration avec Stanislas Zett &lt;br class='autobr' /&gt; Premi&#232;re action du lab RHCE : yum install man kernel-docs procinfo La conf DNS dans le fichier d'interface systemctl restart NetworkManager attention eth0 renomm&#233; en eno1 (p:pci , n:ethernet, 0:slot) si /etc/default/grub pour revenir en eth0 si besoin &lt;br class='autobr' /&gt;
ip addr list =&gt; nmcli &lt;br class='autobr' /&gt;
notion de profil &#224; l'interface =&gt; nmcli conn show (interface) nmcli = persistent = smitty Voir les interfaces vlan &lt;br class='autobr' /&gt;
nmcli (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.coincoin.fr.eu.org/?-Au-boulot-" rel="directory"&gt;Au boulot&lt;/a&gt;

/ 
&lt;a href="https://www.coincoin.fr.eu.org/?+-linux-+" rel="tag"&gt;linux&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href=&#034;http://www.viadeo.com/p/0022ciua94ltbjaz&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Pr&#233;sentation par Fr&#233;d&#233;ric C&#233;li&#233;&lt;/a&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;Ins&#233;rer ici les notes&lt;/textarea&gt;
&lt;p&gt;&lt;a href=&#034;https://www.linkedin.com/in/stanislas-zett-3a21a9118/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Pr&#233;paration avec Stanislas Zett&lt;/a&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='71' class='spip_cadre spip_cadre_block' dir='ltr'&gt;Premi&#232;re action du lab RHCE : yum install man kernel-docs procinfo
La conf DNS dans le fichier d'interface
systemctl restart NetworkManager
attention eth0 renomm&#233; en eno1 (p:pci , n:ethernet, 0:slot)
si /etc/default/grub pour revenir en eth0 si besoin ip addr list =&gt; nmcli notion de profil &#224; l'interface =&gt; nmcli conn show (interface)
nmcli = persistent = smitty
Voir les interfaces vlan nmcli conn mod eno1 ipv4.dns 8.8.8.8 nmtui
=&gt; m&#234;me lacp, bridge &amp; co
-p : pretty
route statiques via un fichier de routes appel&#233;es par la commande ip r systemd
/usr/lib/systemd/service : ajout des services puis jouer sur etat
rien dans rc et init.d
systemctl get-default beep : setterm -blength 0 etat = enabled/disabled/hide
systemctl status &lt;service&gt; pour voir les hide
delay sur cron pour random systemctl isolate graphical.target tips : mettre un &lt;mount&gt;.mount dans systemd systemctl --failed =&gt; list les process tomb&#233;s systemctl list-unit-files
systemctl list-unit --type=target
systemd-cgtop Journaux
journalctl -p err
journalctl -f -p err &lt;tail -f log&gt;
journalctl -xm timedatctl (set-ntp 1)
chrony =&gt; NTPD
chronyc sources -v hostnamectl status
hostnamectl set-hostname &lt;hostname&gt; boot single HS via grub
systemctl isolate rescue.target =&gt; a revoir
grub : init=rescue.target : boot en mode single
chroot /sys/sysroot Boot order from vmlinuz grubline
rd.break
rescue.target
emergency.target
multi &amp; others puis chroot
(besoin d'un remount / rw)
touch /.autorelabel&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Notes Meetup Docker - chez Ecreall</title>
		<link>https://www.coincoin.fr.eu.org/?Notes-Meetup-Docker-chez-Ecreall</link>
		<guid isPermaLink="true">https://www.coincoin.fr.eu.org/?Notes-Meetup-Docker-chez-Ecreall</guid>
		<dc:date>2015-06-15T16:06:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne aka DaffyDuke</dc:creator>


		<dc:subject>linux</dc:subject>
		<dc:subject>virtualisation</dc:subject>

		<description>
&lt;p&gt;docker build -t hello &lt;br class='autobr' /&gt;
puis &lt;br class='autobr' /&gt;
docker run it hello /bin/bash docker exec -it /bin/bash &lt;= screen attach &lt;br class='autobr' /&gt;
setup, puis install de packages par exemple puis sur cloisonn&#233; &lt;br class='autobr' /&gt;
depuis l'hyperviseur : docker ps (&#233;quivalent) container = image, le / est rw mais c'est l'image qui est provisionn&#233; &lt;br class='autobr' /&gt;
on peut en lancer plusieurs sans soucis mode d&#233;mon : docker run it (attention, commande doit garder stdin) (dockerfile &lt; EOF from debian add memory /usr/local/bin # add pour prendre en local et (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.coincoin.fr.eu.org/?-Au-boulot-" rel="directory"&gt;Au boulot&lt;/a&gt;

/ 
&lt;a href="https://www.coincoin.fr.eu.org/?+-linux-+" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://www.coincoin.fr.eu.org/?+-virtualisation-+" rel="tag"&gt;virtualisation&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;textarea readonly='readonly' cols='40' rows='96' class='spip_cadre spip_cadre_block' dir='ltr'&gt;docker build -t hello puis docker run it hello /bin/bash docker exec -it &lt;id&gt; /bin/bash &lt;= screen attach setup, puis install de packages par exemple puis sur cloisonn&#233; depuis l'hyperviseur : docker ps (&#233;quivalent) container = image, le / est rw mais c'est l'image qui est provisionn&#233; on peut en lancer plusieurs sans soucis mode d&#233;mon : docker run it &lt;dockerfile&gt; (attention, commande doit garder stdin) (dockerfile &lt; EOF from debian add memory /usr/local/bin # add pour prendre en local et pousser dans le dfile run date &gt; titi.txt # execution dans un ficher interne # notion de cache apt-get update &amp;&amp; install apt-get install apache2 # mapping de port expose 80 # binder l'apache sur le port 80 , besoin du docker -P pour d&#233;marrer ou docker -p 8000-80 pour mapping 8000 vers 80 # volumes volumes /data # pas besoin d'historiser, donc donn&#233;es ignor&#233;es # -v /coin/data:/data : monte le r&#233;pertoire , volumes peut servir pour un pseudo NFS , exemple utilisation pour centralisation des logs /bin/bash EOF ) Contraintes : que Linux x86_64, &#224; venir Microsoft start-stop-daemon ne peut pas fonctionner dans un container : exemple tomcat6 a patcher dans /etc/init.d pas de mapping user dans le dockerfile contrairemeznt &#224; lxc docker tag &lt;ancien nom&gt; &lt;tag&gt; exemple registry.deliverous.net/ docker log pour s'autenthifier sur le repo docker images # listing des images sur le repos Mise en place de signature sur le push pour verifier, pas par defaut sur docker.io, mais OK sur rocket (CoreOS) Nov14 docker : un binaire en root , rocket : n binaire en userland Avantages : utilisation des capa pour mettre des quotas (-m 64m par exemple) Notion de cache du dockerfile : docker history &lt;docker&gt; Utilisations puppet, ansible, salt (donc plus de layer) docker push &lt;image&gt; : utilisation des layer sur la creation du container : envoi sur docker.io Pas de m&#233;nage chez docker.io mais blacklist possible chez docker.io &#034;bien vu&#034; de pousser chez docker.io pour heberger docker, exemple via un proxy, mais pas obligatoire exemple OVH Attention ne pas mettre apt-get update dans le layer car mise en cache et donc pas de mise &#224; jour en cas d'install soft/vers # sinon docker build --nocache docker compatible SELinux grace RedHat FS support&#233;s : brtfs, device-mapper WebHook entre Github et docker.io pour rebuilder l'image, exemple debian or debian gesty pas encore dispo (systemd par defaut) , run ne d&#233;marre pa sle package car runlevel S , or systemd pas compatible avec le runkevel attendau (notamment udev) Namespace et Cgroups as openvz Exemple clients : 3Suisses, Camaieu /etc/hosts non modifiable, ou alors dnsmask ou alors docker 1.5 d'il y a une semaine si on d&#233;marre un container dans un container, les variables ocmmencent par &lt;nom container&gt; ,exemple un container se connecte &#224; un autre en decouvrant les param &#224; chaud&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>KVM evaluation</title>
		<link>https://www.coincoin.fr.eu.org/?KVM-evaluation</link>
		<guid isPermaLink="true">https://www.coincoin.fr.eu.org/?KVM-evaluation</guid>
		<dc:date>2011-09-12T15:26:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne aka DaffyDuke</dc:creator>


		<dc:subject>kernel</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>virtualisation</dc:subject>

		<description>
&lt;p&gt;Virtualisation Mat&#233;rielle &lt;br class='autobr' /&gt;
Tout d'abord KVM n'est utilisable que sur des processeurs impl&#233;mentant un mode de virtualisation mat&#233;rielle : - VT (Virtualization Technology) chez Intel - SVM (Secure Virtual Machine) chez AMD &lt;br class='autobr' /&gt;
Le principe de ce mode de fonctionnement est le suivant : &lt;br class='autobr' /&gt;
Par d&#233;faut, un processeur dispose de 4 niveaux d'ex&#233;cution appel&#233;s &#171; rings &#187;. &lt;br class='autobr' /&gt;
Sur une archi x86 32 bits, le syst&#232;me d'exploitation fonctionne sur le ring 0 et dispose du plus haut niveau de contr&#244;le &#224; l'inverse (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.coincoin.fr.eu.org/?-Au-boulot-" rel="directory"&gt;Au boulot&lt;/a&gt;

/ 
&lt;a href="https://www.coincoin.fr.eu.org/?+-kernel-+" rel="tag"&gt;kernel&lt;/a&gt;, 
&lt;a href="https://www.coincoin.fr.eu.org/?+-linux-+" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://www.coincoin.fr.eu.org/?+-virtualisation-+" rel="tag"&gt;virtualisation&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Virtualisation Mat&#233;rielle&lt;/h2&gt;
&lt;p&gt;Tout d'abord KVM n'est utilisable que sur des processeurs impl&#233;mentant un mode de virtualisation mat&#233;rielle : - VT (Virtualization Technology) chez Intel - SVM (Secure Virtual Machine) chez AMD&lt;/p&gt;
&lt;p&gt;Le principe de ce mode de fonctionnement est le suivant :&lt;/p&gt;
&lt;p&gt;Par d&#233;faut, un processeur dispose de 4 niveaux d'ex&#233;cution appel&#233;s &#171; rings &#187;.&lt;/p&gt;
&lt;p&gt;Sur une archi x86 32 bits, le syst&#232;me d'exploitation fonctionne sur le ring 0 et dispose du plus haut niveau de contr&#244;le &#224; l'inverse des applications qui tournent sur le ring 3.&lt;/p&gt;
&lt;p&gt;Les couches de niveau sup&#233;rieures ne peuvent pas modifier le comportement des couches inf&#233;rieures, seul l'inverse est vrai. (Un OS arr&#234;te une appli, pas l'inverse)&lt;/p&gt;
&lt;p&gt;Les rings 1 et 2 sont des niveaux interm&#233;diaires, peu utilis&#233; et donc supprim&#233; sur les archis x86-64.&lt;/p&gt;
&lt;p&gt;Le passage en mode privil&#233;gi&#233; est standard sur des archis x86, ce sont nos chers syscalls.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On fait un &#171; open &#187; en userland, une interruption (int 0x80 sous archi x86 pour ne pas la citer) est envoy&#233;e au kernel qui passe dans la fonction &#171; trampoline &#187; cod&#233;e en assembleur (fichier syscalls.S si je ne m'abuse) et qui permet de switcher le processeur en mode privil&#233;gi&#233;, le fameux ring 0.&lt;/p&gt;
&lt;p&gt;A partir de l&#224; on est en kernel mode, le processeur est au ring 0 et tout est possible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Revenons &#224; nos moutons :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lorsque l'on virtualise, on utilise un OS privil&#233;gi&#233; : l'hyperviseur. Il contr&#244;le les h&#244;tes et les ressources physiques et utilise le ring 0.&lt;/p&gt;
&lt;p&gt;L'hyperviseur g&#232;re les guests qui doivent donc, pour respecter la hi&#233;rarchie de contr&#244;le, utiliser les rings 1 ou 2.&lt;/p&gt;
&lt;p&gt;Le probl&#232;me est qu'un OS est con&#231;u pour ne s'ex&#233;cuter que sur le ring 0, il v&#233;rifie qu'il r&#233;side au bon endroit m&#233;moire d&#233;di&#233; aux OS et certaines instructions ne s'ex&#233;cutent que si elles viennent du ring 0 ou y vont. (et heureusement&#8230;)&lt;/p&gt;
&lt;p&gt;Pour pallier &#224; ce probl&#232;me, on utilise donc la virtualisation.&lt;/p&gt;
&lt;p&gt;La paravirtualisation (XEN) consiste &#224; modifier les OS invit&#233;s pour permettre un mode d'ex&#233;cution autre que le ring 0.&lt;/p&gt;
&lt;p&gt;Lorsque l'on ne peut pas modifier le code de l'OS (&#8230;), on proc&#232;de &#224; des translations binaires (VMware, QEMU) pour faire croire &#224; l'OS qu'il occupe un emplacement m&#233;moire valide ainsi que le niveau d'ex&#233;cution processeur ring 0. Evidemment, ce dernier mode est plus gourmand en ressource.&lt;/p&gt;
&lt;p&gt;Les technologies de virtualisations mat&#233;rielles consistent &#224; cr&#233;er un nouveau mode d'ex&#233;cution (VMX chez Intel). On a donc un niveau racine &lt; ring 0, et un niveau normal correspondant aux rings 0-3 d&#233;crits pr&#233;c&#233;demment. L'hyperviseur s'ex&#233;cute en mode racine et les h&#244;tes en ring 0. Pour ceux qui s'imaginent d&#233;j&#224; que nous nous sommes compl&#232;tement affranchis de la translation binaire, je suis d&#233;sol&#233; mais ce comportement est encore n&#233;cessaire pour certaines fonctions.&lt;/p&gt;
&lt;p&gt;Lorsque l'on se penche sur les sources de KVM, les d&#233;veloppeurs mettent en avant un code concis, clair et permettant de profiter des am&#233;liorations du kernel 2.6 sans effets de bords possible. C'est pr&#233;cis&#233;ment parce que les technologies VT et SVM existent que cela est possible.&lt;/p&gt;
&lt;p&gt;Maintenant que les guests OS disposent d'un espace d'ex&#233;cution d&#233;di&#233; ainsi que d'un niveau d'ex&#233;cution qui ne les perturbe pas trop, il va falloir partager un peu les ressources, l'hyperviseur est g&#233;n&#233;ralement d&#233;di&#233; &#224; cela.&lt;/p&gt;
&lt;p&gt;Naturellement un guest OS se croit seul au monde, et l'hyperviseur se doit de faire du context switching d'OS pour fournir des &#171; time slice &#187; en fonction des besoins de chacun. Pour rendre possible tout cela, il faut stocker une image du syst&#232;me, sauvegarder les registres, les caches etc&#8230; et remettre tout ce petit monde en activit&#233; r&#233;guli&#232;rement.&lt;/p&gt;
&lt;p&gt;Les technologies VT et SVM disposent d'un jeu d'instructions d&#233;di&#233;es &#224; ces taches (VM Exit, VM Launch, VM Resume&#8230;), d'un jeu de signaux sp&#233;cialis&#233;s dans l'&#233;v&#232;nementiel (interruptions hardware, Idle Time) et chaque h&#244;te se voit allouer un segment m&#233;moire de quelques Ko de son espace d'adressage pour stocker les donn&#233;es d'&#233;tat. Cet espace est &#233;videmment lu avant chaque mise en activit&#233; et &#233;crit &#224; chaque context switch d'OS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le processeur utilis&#233; alors par un guest OS vaque &#224; ses occupations, re&#231;oit un signal connu et r&#233;f&#233;renc&#233; dans son handler (table de 32 bits), il lance VM Exit et passe la main &#224; l'hyperviseur. Ce dernier lance son processus de sauvegarde d'&#233;tat puis effectue un &#233;ventuel context switch par le biais de VM Resume puis VM Launch.&lt;/p&gt;
&lt;p&gt;L'hyperviseur dispose ainsi d'une granularit&#233; de contr&#244;le importante et c'est tr&#232;s peu consommateur en ressource.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Fonctionnement de KVM&lt;/h2&gt;
&lt;p&gt;Nous disions donc que KVM n&#233;cessite le support des fonctionnalit&#233;s processeurs de virtualisation mat&#233;rielle.&lt;/p&gt;
&lt;p&gt;Le fonctionnement de KVM est bas&#233; sur un hyperviseur. Par abus de langage, le terme d'hyperviseur est assimil&#233; &#224; l'OS privil&#233;gi&#233; qui g&#232;re les guests OS, c'est inexact. Pour &#234;tre pr&#233;cis, l'OS privil&#233;gi&#233; ex&#233;cute des t&#226;ches critiques sur demande de l'hyperviseur qui est une entit&#233; fonctionnelle dans le kernel. Cette entit&#233; &#233;tant bas&#233;e sur diverses technologies mat&#233;rielles et algorithmes.&lt;/p&gt;
&lt;p&gt;Dans le mod&#232;le KVM, l'hyperviseur est donc bas&#233; sur : - Les technologies de virtualisations mat&#233;rielles - Le scheduler kernel - La gestion de la m&#233;moire du kernel - Un d&#233;veloppement propre au projet permettant, entre autres, d'organiser et ordonnancer tout cela.&lt;/p&gt;
&lt;p&gt;L'hyperviseur g&#232;re le scheduling des taches au sens large du terme, la m&#233;moire et d&#233;l&#232;gue les IO &#224; un h&#244;te privil&#233;gi&#233;.&lt;/p&gt;
&lt;p&gt;Par d&#233;faut, un OS Linux dispose de 2 modes de fonctionnement : User Mode et Kernel Mode.&lt;/p&gt;
&lt;p&gt;KVM ajoute un troisi&#232;me mode appel&#233; Guest Mode qui dispose de ses propres User Mode et Kernel Mode.&lt;/p&gt;
&lt;p&gt;Les taches sont d&#233;compos&#233;es de la fa&#231;on suivante : - Les OS invit&#233;s sont ex&#233;cut&#233;s en Guest Mode, on y traite toutes les taches hormis les IO. - En Kernel Mode on ordonnance les OS invit&#233;s et les requ&#234;tes d'IO de ces derniers. - En User Mode on ex&#233;cute les requ&#234;tes d'IO des OS invit&#233;s. (c'est l&#224; ou cela devient amusant&#8230;)&lt;/p&gt;
&lt;p&gt;On remarquera qu'&#224; aucun moment, dans le mod&#232;le d&#233;crit, il n'est n&#233;cessaire de cr&#233;er un scheduler de taches, un syst&#232;me de gestion de m&#233;moire, un patch pour des drivers hardware. C'est pr&#233;cis&#233;ment ici que se trouve la valeur ajout&#233;e de KVM. Il est natif au code du kernel Linux, ne n&#233;cessite pas de maintenance pour les drivers hardware et b&#233;n&#233;ficie de toutes les am&#233;liorations kernel. (Pour rappel, &#224; partir des kernels 2.6, le scheduler de tache est en O(1) et sera encore am&#233;lior&#233;, il serait dommage de ne pas en profiter&#8230;.)&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Utilisation de KVM et r&#233;sultats de tests&lt;/h2&gt;
&lt;p&gt;Pour revenir &#224; des choses un peu basique, KVM est impl&#233;ment&#233; &#224; partir des versions de kernel 2.6.20 et se d&#233;compose en : - Un module kernel &#171; kvm &#187;, impl&#233;mentant l'API globale de scheduling, de gestion de m&#233;moire, le Guest Mode et l' &#171; intelligence &#187; de l'outil - Un module &#171; kvm-intel &#187; ou &#171; kvm-amd &#187; comprenant les traitements et instructions propres au processeur utilis&#233;. - Un device driver /dev/kvm (le minor number est allou&#233; dynamiquement, pas vraiment pratique pour industrialiser&#8230;) permettant de contr&#244;ler KVM et les guests OS.&lt;/p&gt;
&lt;p&gt;Ensuite nous utilisons l'outil userland QEMU, l&#233;g&#232;rement modifi&#233; pour prendre en compte /dev/kvm ainsi que le module d'acc&#233;l&#233;ration mat&#233;riel kqemu. QEMU s'occupe de g&#233;rer l'&#233;mulation hardware, on a parl&#233; d'IO tout &#224; l'heure, c'est par ici que cela se passe.&lt;/p&gt;
&lt;p&gt;QEMU est utilis&#233; pour g&#233;rer les OS invit&#233;s &#224; savoir : - le d&#233;marrage - l'arr&#234;t - le monitoring - les espaces disques (le guest OS est-il sur un ensemble de partitions LVM2 ? dans un fichier mont&#233; en loopback ? sur un CDROM ? dans un fichier ISO ?) - les interfaces r&#233;seaux (natif, VLAN &#8230;) - l'acc&#232;s au guest OS via VNC entre autres - l'activation / d&#233;sactivation des options de boot comme l'ACPI ou l'USB - le copy-on-write des images disques - etc etc&#8230;&lt;/p&gt;
&lt;p&gt;Son utilisation n'est pas du tout conviviale et l'industrialisation de l'outil ne r&#233;v&#232;lerait pas straightforward.&lt;/p&gt;
&lt;p&gt;On boot sur un kernel 2.6.21, on charge les modules kvm, kvm-intel (on aura au pr&#233;alable activ&#233; le VT dans le BIOS), kqemu (module d'acc&#233;l&#233;ration mat&#233;rielle).&lt;/p&gt;
&lt;p&gt;On cr&#233;e les devices /dev/kvm et /dev/kqemu avec les minor qui vont bien.&lt;/p&gt;
&lt;p&gt;On d&#233;marre un Guest OS par le biais de qemu :&lt;/p&gt;
&lt;p&gt;qemu -boot c -hda /dev/mapper/vg&#8212;ld0-pouet_kvm -hdb /dev/mapper/vg&#8212;ld0-pouet_work -k fr -vnc 0:0 -daemonize -m 1024 -net nic -kernel-kqemu&lt;/p&gt;
&lt;p&gt;A partir de ce moment, QEMU v&#233;rifie que nous avons mont&#233; une shm d'une taille suffisante pour le guest OS (1024 dans notre exemple), ensuite il mmap() la m&#233;moire physique de l'h&#244;te invit&#233; puis appelle le module kernel kvm (par le biais /dev/kvm) pour qu'il lance le Guest Mode.&lt;/p&gt;
&lt;p&gt;Un Guest OS est na&#238;t.&lt;/p&gt;
&lt;p&gt;Si l'on se penche maintenant sur le cheminement suivit par les processus d'IO, cela se d&#233;roule comme suit :&lt;/p&gt;
&lt;p&gt;Un OS invit&#233; envoi une interruption d'IO. (Guest/User Mode puis Guest/Kernel Mode) L'hyperviseur (j'ai bien dit hyperviseur&#8230;) re&#231;oit la requ&#234;te et la transfert &#224; l'OS privil&#233;gi&#233; (shm quand tu nous tiens&#8230;). En reprenant notre exemple, l'OS privil&#233;gi&#233; sera l'OS depuis lequel nous avons lanc&#233; la commande &#171; qemu &#187; et cr&#233;e le guest OS.&lt;/p&gt;
&lt;p&gt;Le scheduler de l'hyperviseur proc&#232;de &#224; un context switch d'OS pour donner la main &#224; l'OS privil&#233;gi&#233;. On arrive ici en User Mode puisque, aux yeux de l'OS privil&#233;gi&#233;, c'est le processus userland QEMU qui a demand&#233; la requ&#234;te d'IO.&lt;/p&gt;
&lt;p&gt;On appelle le gestionnaire d'interruption de l'h&#244;te privil&#233;gi&#233;, qui envoi la requ&#234;te au scheduler d'IO. (Kernel Mode) L'h&#244;te privil&#233;gi&#233; proc&#232;de &#224; un context switch classique. (Kernel Mode) La requ&#234;te d'IO est effectu&#233;e. (Kernel Mode) Ici c'est une requ&#234;te d'IO classique. Pour r&#233;sumer : Syscall -&gt; VFS -&gt; r&#233;cup&#233;ration de l'inode (fonction nameilookup dans namei.c si mes souvenirs sont corrects) -&gt; switch sur le FS qui va bien -&gt; remplissage d'une structure bioread apr&#232;s avoir r&#233;cup&#233;rer le dinode (j'ai bien dit dinode), le driver hardware fait son boulot en flushant le buffer et on repart en sens inverse.&lt;/p&gt;
&lt;p&gt;Un signal de fin d'IO est envoy&#233; &#224; l'h&#244;te privil&#233;gi&#233;, on revient en User Mode pour repartir de suite en Kernel Mode, puis l'hyperviseur proc&#232;de &#224; un context switch d'OS pour revenir au guest OS initiateur de la demande d'IO. L'hyperviseur relance le guest OS. (Vous vous souvenez, VM Resume tout &#231;a&#8230;)&lt;/p&gt;
&lt;p&gt;L'avantage, lorsque l'on utilise KVM est qu'aux yeux d'un h&#244;te privil&#233;gi&#233;, les guests OS sont des processus classiques. Les outils d'administrations standard fonctionnent donc sans probl&#232;me (ps &#187;, &#171; kill &#187;, &#171; top &#187;).&lt;/p&gt;
&lt;p&gt;Les tests comparatifs ont &#233;t&#233; r&#233;alis&#233;s entre 1 OS privil&#233;gi&#233; et 1 guest OS : G5 dot&#233; d'un CPU 3.00GHz, 1 Go RAM, partitions LVM2&lt;/p&gt;
&lt;p&gt;(ces r&#233;sultats sont une moyenne de 3 benchs).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tests IO :&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='8' class='spip_cadre spip_cadre_block' dir='ltr'&gt;iozone -s 1k -r 1k -t 200 -i0 -i1 -o OS privil&#233;gi&#233; / OS invit&#233; Ecriture 20 R&#233;-&#233;criture 100 Lecture 12 Re Lecture 13&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Tests CPU :&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;nbench&lt;/textarea&gt;
&lt;p&gt;Je ne mets pas les r&#233;sultats de chaque test ici, ce n'est pas pertinent dans la mesure ou la seule chose &#224; retenir est que nous perdons, dans le pire des cas 3% de CPU entre l'OS privil&#233;gi&#233; est le Guest OS.&lt;/p&gt;
&lt;p&gt;Les r&#233;sultats des tests CPU et IO sont rassurants puisqu'ils viennent confirmer le mode de fonctionnement d&#233;crit pr&#233;c&#233;demment.&lt;/p&gt;
&lt;p&gt;En revanche, les r&#233;sultats des tests d'IO sont tr&#232;s en dessous de notre seuil de tol&#233;rance.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Le concept KVM est sympa et tr&#232;s prometteur.&lt;/p&gt;
&lt;p&gt;La majeure partie des points n&#233;gatifs vient de QEMU, les IO sont mauvaises, l'administration des h&#244;tes n'est pas limpide, pas de support 64 bits pour le moment, tous les hardwares ne sont pas support&#233;s (disk et r&#233;seau pour ne citer qu'eux). Il n'est pas simple d'impl&#233;menter une archi Front/Middle/Back avec les VLANS qui vont bien.&lt;/p&gt;
&lt;p&gt;Dans le cadre d'une industrialisation il faudrait cr&#233;er un nouveau processus de g&#233;n&#233;ration de guest OS, un wrapper d'administration facilement utilisable ainsi qu'un outil de monitoring propre pour la prod.&lt;/p&gt;
&lt;p&gt;Bref, avis d&#233;favorable en ce qui me concerne mais il faut garder un &#339;il dessus car s'ils se mettent &#224; faire un peu d'IO et qu'ils codent un outil d'admin/monitoring convivial cela peut &#234;tre vraiment sympa.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
