Outils pour utilisateurs

Outils du site


systeme:ceph

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
systeme:ceph [2017/05/01 17:33] rootsysteme:ceph [2017/05/06 11:10] (Version actuelle) – [Piste de réflexion personnelle] root
Ligne 703: Ligne 703:
 </note> </note>
  
-Pour créer un nouveau profile, par exemple :+Pour créer un nouveau profile, par exemple avec **k=10** et **m=2** (cela signifie que l'on va écrire 12 objets => 10+2) :
 <xtermrtf> <xtermrtf>
 $ ceph osd erasure-code-profile set gigix-erasure k=10 m=2 ruleset-failure-domain=room $ ceph osd erasure-code-profile set gigix-erasure k=10 m=2 ruleset-failure-domain=room
Ligne 722: Ligne 722:
 </xtermrtf> </xtermrtf>
  
 +<note>
 +La taille consommé par le pool est : **nOSD * k / (k+m) * OSD Size**.
 +</note>
  
   * Afficher la valeur d'une clé d'un pool :   * Afficher la valeur d'une clé d'un pool :
Ligne 750: Ligne 753:
   max objects: N/A   max objects: N/A
   max bytes  : 9765kB   max bytes  : 9765kB
 +  
 +$ dd if=/dev/zero of=gigix-object-file bs=200M count=1
 +1+0 enregistrements lus
 +1+0 enregistrements écrits
 +209715200 bytes (210 MB, 200 MiB) copied, 0,353353 s, 594 MB/s
 +
 +$ rados -p cephfs_data put gigix-object gigix-object-file
 +2017-05-01 19:33:57.073792 7fd005812a40  0 client.435355.objecter  FULL, paused modify 0x55cdbb0fdcb0 tid 0
 </xtermrtf> </xtermrtf>
  
Ligne 1253: Ligne 1264:
  
 ==== Procédures ==== ==== Procédures ====
 +=== Installer ISCSI GW ===
 +Exemple avec 2 gateway ISCSI.
 +
 +  * On crée une image de 3G sur le pool **cephfs_data** :
 +<xtermrtf>
 +$ rbd create cephfs_data/gigix-iscsi -s 3G
 +</xtermrtf>
 +
 +<note>
 +Toutes les commandes ci-dessous sont à faire sur les 2 serveurs.
 +</note>
 +
 +  * On installe les paquets :
 +<xtermrtf>
 +$ zypper in -t pattern ceph_iscsi
 +</xtermrtf>
 +
 +  * On active le service au boot pour générer la config :
 +<xtermrtf>
 +$ systemctl enable lrbd.service
 +</xtermrtf>
 +
 +  * On édite la config avec la config **lrbd -e** :
 +<xtermrtf>
 +{
 +  "auth": [
 +    {
 +      "target": "iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi",
 +      "authentication": "none"
 +    }
 +  ],
 +  "targets": [
 +    {
 +      "target": "iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi",
 +      "hosts": [
 +        {
 +          "host": "osd1",
 +          "portal": "portal-56"
 +        },
 +        {
 +          "host": "osd3",
 +          "portal": "portal-66"
 +        }
 +      ]
 +    }
 +  ],
 +  "portals": [
 +    {
 +      "name": "portal-56",
 +      "addresses": [
 +        "192.168.122.11"
 +      ]
 +    },
 +    {
 +      "name": "portal-66",
 +      "addresses": [
 +        "192.168.122.13"
 +      ]
 +    }
 +  ],
 +  "pools": [
 +    {
 +      "pool": "cephfs_data",
 +      "gateways": [
 +        {
 +          "target": "iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi",
 +          "tpg": [
 +            {
 +              "image": "gigix-iscsi"
 +            }
 +          ]
 +        }
 +      ]
 +    }
 +  ]
 +}
 +</xtermrtf>
 +
 +  * On applique la config :
 +<xtermrtf>
 +$ lrbd
 +rbd -p cephfs_data --name client.admin map gigix-iscsi
 +/dev/rbd0
 +targetcli /backstores/rbd create name=cephfs_data-gigix-iscsi dev=/dev/rbd/cephfs_data/gigix-iscsi
 +Created RBD storage object cephfs_data-gigix-iscsi using /dev/rbd/cephfs_data/gigix-iscsi.
 +targetcli /iscsi create iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi
 +Created target iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi.
 +Selected TPG Tag 1.
 +Created TPG 1.
 +targetcli /iscsi/iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi create 2
 +Created TPG 2.
 +targetcli /iscsi/iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi/tpg2 disable
 +The TPG has been disabled.
 +targetcli /iscsi/iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi/tpg1 disable
 +The TPG has been disabled.
 +targetcli /iscsi/iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi/tpg1/luns create /backstores/rbd/cephfs_data-gigix-iscsi
 +Selected LUN 0.
 +Created LUN 0.
 +targetcli /iscsi/iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi/tpg2/luns create /backstores/rbd/cephfs_data-gigix-iscsi
 +Selected LUN 0.
 +Created LUN 0.
 +targetcli /iscsi/iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi/tpg1/portals create 192.168.122.11
 +Using default IP port 3260
 +IP address 192.168.122.11 does not exist on this host.
 +Created network portal 192.168.122.11:3260.
 +targetcli /iscsi/iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi/tpg2/portals create 192.168.122.13
 +Using default IP port 3260
 +Created network portal 192.168.122.13:3260.
 +targetcli /iscsi/iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi/tpg2 set attribute authentication=0 demo_mode_write_protect=0 generate_node_acls=1
 +Parameter authentication is now '0'.
 +Parameter demo_mode_write_protect is now '0'.
 +Parameter generate_node_acls is now '1'.
 +targetcli /iscsi/iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi/tpg1 set attribute authentication=0 demo_mode_write_protect=0 generate_node_acls=1
 +Parameter authentication is now '0'.
 +Parameter demo_mode_write_protect is now '0'.
 +Parameter generate_node_acls is now '1'.
 +targetcli /iscsi/iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi/tpg2 enable
 +The TPG has been enabled.
 +</xtermrtf>
 +
 +ou 
 +
 +<xtermrtf>
 +$ systemctl start lrbd
 +</xtermrtf>
 +
 +  * On vérifie :
 +<xtermrtf>
 +$ targetcli ls
 +o- / ......................................................................................................................... [...]
 +  o- backstores .............................................................................................................. [...]
 +  | o- fileio ................................................................................................... [0 Storage Object]
 +  | o- iblock ................................................................................................... [0 Storage Object]
 +  | o- pscsi .................................................................................................... [0 Storage Object]
 +  | o- rbd ...................................................................................................... [1 Storage Object]
 +  | | o- cephfs_data-gigix-iscsi ...................................................... [/dev/rbd/cephfs_data/gigix-iscsi activated]
 +  | o- rd_mcp ................................................................................................... [0 Storage Object]
 +  o- ib_srpt ........................................................................................................... [0 Targets]
 +  o- iscsi .............................................................................................................. [1 Target]
 +  | o- iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi .................................................................. [2 TPGs]
 +  |   o- tpg1 ........................................................................................................... [disabled]
 +  |   | o- acls ........................................................................................................... [0 ACLs]
 +  |   | o- luns ............................................................................................................ [1 LUN]
 +  |   | | o- lun0 ................................................. [rbd/cephfs_data-gigix-iscsi (/dev/rbd/cephfs_data/gigix-iscsi)]
 +  |   | o- portals ...................................................................................................... [1 Portal]
 +  |     o- 192.168.122.11:3260 ............................................................................... [OK, iser disabled]
 +  |   o- tpg2 ............................................................................................................ [enabled]
 +  |     o- acls ........................................................................................................... [0 ACLs]
 +  |     o- luns ............................................................................................................ [1 LUN]
 +  |     | o- lun0 ................................................. [rbd/cephfs_data-gigix-iscsi (/dev/rbd/cephfs_data/gigix-iscsi)]
 +  |     o- portals ...................................................................................................... [1 Portal]
 +  |       o- 192.168.122.13:3260 ............................................................................... [OK, iser disabled]
 +  o- loopback .......................................................................................................... [0 Targets]
 +  o- qla2xxx ........................................................................................................... [0 Targets]
 +  o- tcm_fc ............................................................................................................ [0 Targets]
 +  o- vhost ............................................................................................................. [0 Targets]
 +</xtermrtf>
 +
 +<note>
 +Maintenant on passe à la partie cliente.
 +</note>
 +
 +  * On vérifie que l'on voit bien les luns :
 +<xtermrtf>
 +$ iscsiadm -m discovery -t sendtargets -p 192.168.122.11
 +192.168.122.11:3260,1 iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi
 +192.168.122.13:3260,2 iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi
 +</xtermrtf>
 +
 +<xtermrtf>
 +$ iscsiadm -m node -p 192.168.122.11 --login
 +Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi, portal: 192.168.122.11,3260] (multiple)
 +Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi, portal: 192.168.122.11,3260] successful.
 +
 +$ iscsiadm -m node -p 192.168.122.13 --login
 +Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi, portal: 192.168.122.13,3260] (multiple)
 +Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi.x86:gigix-iscsi, portal: 192.168.122.13,3260] successful.
 +</xtermrtf>
 +
 +  * On liste les devices :
 +<xtermrtf>
 +$ lsscsi -s
 +[0:0:0:0]    cd/dvd  QEMU     QEMU DVD-ROM     2.5+  /dev/sr0        -
 +[2:0:0:0]    disk    SUSE     RBD              4.0   /dev/sda   3.22GB
 +[3:0:0:0]    disk    SUSE     RBD              4.0   /dev/sdb   3.22GB
 +</xtermrtf>
 +
 +  * Editer le fichier ''/etc/multipath.conf'' :
 +<code data multipath.conf>
 +defaults {
 +  user_friendly_names yes
 +}
 +
 +devices {
 +  device {
 +    vendor "(LIO-ORG|SUSE)"
 +    product "RBD"
 +    path_grouping_policy "multibus"
 +    path_checker "tur"
 +    features "0"
 +    hardware_handler "1 alua"
 +    prio "alua"
 +    failback "immediate"
 +    rr_weight "uniform"
 +    no_path_retry 12
 +    rr_min_io 100
 +  }
 +}
 +</code>
 +
 +  * On liste les paths :
 +<xtermrtf>
 +$ multipath -ll
 +mpatha (3600140571dc15dc9fa13437ae8840470) dm-2 SUSE    ,RBD             
 +size=3.0G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
 +`-+- policy='service-time 0' prio=50 status=active
 +  |- 2:0:0:0 sda 8:0  active ready running
 +  `- 3:0:0:0 sdb 8:16 active ready running
 +</xtermrtf>
 +
 +  * On créer la table des partitions :
 +<xtermrtf>
 +$ parted /dev/mapper/mpatha mklabel gpt mkpart primary xfs 0% 100%
 +
 +$ parted /dev/mapper/mpatha print              
 +Modèle: Mappeur de périphériques Linux (multipath) (dm)
 +Disque /dev/mapper/mpatha : 3221MB
 +Taille des secteurs (logiques/physiques): 512B/512B
 +Table de partitions : gpt
 +Disk Flags: 
 +
 +Numéro  Début   Fin     Taille  Système de fichiers  Nom      Fanions
 +      4194kB  3217MB  3213MB                       primary
 +</xtermrtf>
 +
 +  * On crée le FS xfs :
 +<xtermrtf>
 +$ mkfs.xfs /dev/mapper/mpatha1
 +meta-data=/dev/mapper/mpatha1    isize=512    agcount=9, agsize=97280 blks
 +                               sectsz=512   attr=2, projid32bit=1
 +                               crc=1        finobt=1, sparse=0, rmapbt=0, reflink=0
 +data                           bsize=4096   blocks=784384, imaxpct=25
 +                               sunit=1024   swidth=1024 blks
 +naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
 +log      =internal log           bsize=4096   blocks=2560, version=2
 +                               sectsz=512   sunit=8 blks, lazy-count=1
 +realtime =none                   extsz=4096   blocks=0, rtextents=0
 +</xtermrtf>
 +
 === Modifier la crush map === === Modifier la crush map ===
 Sauvegarde la crush map decompilée : Sauvegarde la crush map decompilée :
Ligne 1372: Ligne 1632:
 </xtermrtf> </xtermrtf>
 6. Vérifier que le cluster est dans l'état **HEALTH_OK** 6. Vérifier que le cluster est dans l'état **HEALTH_OK**
 +
 +=== Migration de pool ===
 +Voir : https://ceph.com/geen-categorie/ceph-pool-migration/
 +<xtermrtf>
 +pool=testpool
 +$ ceph osd pool create $pool.new 4096 4096 erasure default
 +$ rados cppool $pool $pool.new
 +$ ceph osd pool rename $pool $pool.old
 +$ ceph osd pool rename $pool.new $pool
 +</xtermrtf>
 +
 +=== Afficher les PG dégradés ===
 +Affiche par pool le status des PGs qui ne sont pas dans un état '**active+clean** :
 +<xtermrtf>
 +$ for pool in $(ceph osd pool ls); do echo -e "\n\n\n========== $pool  ==========" && ceph pg ls-by-pool $pool | egrep -v 'active\+clean'; done
 +</xtermrtf>
 +
 +Affiche par osd le status des PGs qui ne sont pas dans un état **'active+clean** (attention cela affiche les osd ayant un PG secodnaire impacté) :
 +<xtermrtf>
 +$ for osd in $(ceph osd ls); do echo -e "\n\n\n========== osd.$osd  ==========" && ceph pg ls-by-osd $osd | egrep -v 'active\+clean'; done
 +</xtermrtf>
 +
 +ou 
 +
 +<xtermrtf>
 +$ ceph helth detail
 +</xtermrtf>
 +
 +=== Quota CephFS ===
 +== Mettre un quota CephFS ==
 +<xtermrtf>
 +$ setfattr -n ceph.quota.max_bytes -v 100000000 /some/dir     # 100 MB
 +$ setfattr -n ceph.quota.max_files -v 10000 /some/dir         # 10,000 files
 +</xtermrtf>
 +
 +== Voir les quotas Cepfs ==
 +<xtermrtf>
 +$ getfattr -n ceph.quota.max_bytes /some/dir
 +$ getfattr -n ceph.quota.max_files /some/dir
 +</xtermrtf>
 +
 +== Supprimer un quota CephFS ==
 +<xtermrtf>
 +$ setfattr -n ceph.quota.max_bytes -v 0 /some/dir
 +$ setfattr -n ceph.quota.max_files -v 0 /some/dir
 +</xtermrtf>
 +
 +
 +==== Piste de réflexion personnelle ====
 +Piste de réflexion avec serveur disposant de 24 emplacements disques :
 +
 +<note>
 +Plus de journal sur SSD avec BlueStore (tech preview) ? On gagne en disque ?
 +</note>
 +
 +  * Piste HDD :
 +<code>
 +2 OS
 +4 SSD journal
 +16 HDD data (2To) => 32T / Serveur
 +=======
 +22/24 hdd
 +
 +64G RAM ?
 +</code>
 +
 +  * Piste SSD (prix ?):
 +<code>
 +2 OS
 +4 SSD journal
 +18 SSD DATA (1To) ou si pas de journal séparé sur 22 SSD data => entre 18 et 22T / serveur
 +==================
 +24/24 ssd
 +
 +Entre 18 et 22G RAM ?
 +</code>
 +
 +**Pour solution HDD :**
 +  * 16 * 100M ~= 1600M/s (à 2000M/s)
 +  * Solution RDMA infinidand ?
 +  * Il faudrait donc 1 carte dual port 56 Gbps (par exemple Mellanox ConnectX4) ou 2 cartes dual port 10Gbps si moins cher (2 lacp) :
 +    * 1 port pour cluster ceph pour la réplication et rebuid des osd
 +    * 1 port pour le réseau public => les clients (Ethernet ou Infinidand pour clients ?)
 +
 +**Protocol RDMA pour :**
 +  * gagner en latence
 +  * gagner en débit
 +  * gagner en CPU
 +
 +**Tunning :**
 +  * numactl ? 1 osd par cpu (+bind mémoire) => ExecStart=numactl --physcpubind=%i --membind=0 <service ceph> (plus compliqué avec 2 proc. Si 2 proc : pair sur socket pair => Ex : osd.3 sur socket 1 car impair). 2 cpu réservés à l'OS (les 2 derniers => isolcpu) ?
 +  * jumbo frame
 +  * tunning sysctl + udev
 +  * xio (non supporté en production) ? (voir [[https://youtu.be/FzD87qSJee0|Youtube]])
 +  * rdma (https://community.mellanox.com/docs/DOC-2693):
 +<code>
 +  [global]
 +...
 +ms_type=async+rdma
 +ms_async_rdma_device_name=mlx5_0
 +</code>
systeme/ceph.1493659986.txt.gz · Dernière modification : 2017/05/01 17:33 de root