{"id":18475306,"url":"https://github.com/jschmid1/esxi_ceph_chaos_monkey","last_synced_at":"2025-09-18T17:30:52.347Z","repository":{"id":50207598,"uuid":"133022991","full_name":"jschmid1/esxi_ceph_chaos_monkey","owner":"jschmid1","description":"Stress testing tool for VMware and Ceph over iscsi","archived":false,"fork":false,"pushed_at":"2022-12-08T02:05:07.000Z","size":38,"stargazers_count":9,"open_issues_count":10,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T10:45:22.361Z","etag":null,"topics":["ceph","iscsi","testing","vmware"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jschmid1.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-11T09:59:26.000Z","updated_at":"2025-03-11T23:05:31.000Z","dependencies_parsed_at":"2023-01-25T03:00:30.223Z","dependency_job_id":null,"html_url":"https://github.com/jschmid1/esxi_ceph_chaos_monkey","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jschmid1/esxi_ceph_chaos_monkey","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jschmid1%2Fesxi_ceph_chaos_monkey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jschmid1%2Fesxi_ceph_chaos_monkey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jschmid1%2Fesxi_ceph_chaos_monkey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jschmid1%2Fesxi_ceph_chaos_monkey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jschmid1","download_url":"https://codeload.github.com/jschmid1/esxi_ceph_chaos_monkey/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jschmid1%2Fesxi_ceph_chaos_monkey/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275804549,"owners_count":25531702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ceph","iscsi","testing","vmware"],"created_at":"2024-11-06T10:34:05.519Z","updated_at":"2025-09-18T17:30:52.064Z","avatar_url":"https://github.com/jschmid1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n*****************\nDescription\n*****************\n\nThis projects tries to stresstest a existing iSCSI and VMWare setup.\n\nIt\n\n- Creates\n- Migrates\n- Clones\n- Deletes\n\nvirtual machines.\n\nDuring these operations it will simulate outages on the ceph cluster.\n\n- Reboot a node\n- Shutdown a OSD\n- Reboot a iSCSI Gateway\n\nIt will stop and collect all necessary logs if either the ceph cluster\nof the VMWare hosts report a failure.\n\nIntended to run in a jenkins context, but can also be executed standalone.\n\nFor it to run you will need:\n\n- running VMware cluster\n- running ceph cluster\n- configured datastore(iscsi)\n- template vm to clone from\n\n\n*****************\nInstallation\n*****************\n\nPlease make sure that you have installed:\n\npython3-devel, make, gcc\n\nbefore starting:\n\n\n.. code-block:: shell\n\n    python3 -m venv venv/\n\n    source venv/bin/activate\n\n    pip3 install -r requirements.txt\n    \nPlease read ahead before starting this tool with:\n\n.. code-block:: shell\n\n    python3 stress_test_vmware_ceph/main.py\n\n\n*****************\nConfiguration\n*****************\n\nThere are 2 modes available currently.\n\n.. code-block:: yaml\n\n    mode: 'async' \n    # available modes are:\n    # sync, async\n    \nSync is a 'blocking' mode where one operation is executed at a time.\nAsync is based on a task_queue and queues up `max_tasks`.\n\n\n.. code-block:: yaml\n\n    max_tasks: 10\n\n.. code-block:: yaml\n\n    # Logging\n    LOG_LEVEL_CONSOLE: 'info'\n    LOG_LEVEL_FILE: 'debug'\n    LOG_LEVEL: 'info'\n    LOG_FILE_PATH: 'chaos.log'\n    \nStandard Logging information\n\n.. code-block:: yaml\n\n    # vshpere v-center\n    host: \"10.162.186.115\"\n    user: \"root\"\n    password: \"replace_me\"\n    dc_name: \"Datacenter\"\n    cluster_name: \"Openstack\"\n    \nMigration can only be performed if there are multiple ( `esxi_hosts` or `ds_names` )\n\n.. code-block:: yaml\n\n    esxi_hosts: [\"10.162.186.111\"]\n    template_vm_name: \"ceph_template_vm\"\n\n    # Ceph Admin\n    ceph_adm_node: \"blueshark1.arch.suse.de\"\n    ceph_adm_user: \"root\"\n    ceph_adm_password: \"replace_me\"\n\n    # Gateways\n    gateways: ['blueshark2.arch.suse.de']\n    gateway_user: \"root\"\n    gateway_password: \"replace_me\"\n    ds_names: [\"iscsi_testing_1\", \"iscsi_testing_2\"]\n\n    # General settings\n    filter_string: \"ceph_\"\n    max_vms: 6\n    \nYou can configure the amount of VMs spawned at the same point of time.\n( You might want this if your vmware host is not _too_ strong, or you have other \nworkload running at the same time.\nUse `max_vms` for this.\n\n   \nRebooting of a gateway will be disabled if you don't have more than one gateway defined in your configuration.\nYou can change that behavior by setting `force_reboot` to True.\n\n.. code-block:: yaml\n\n    force_reboot: False\nThe ammount of OSDs that will be taken down out/down is computed. The default is 20% based on.\n\n`osd_count * 0.2`\n\nThat means that 20% of all your OSDs are allowed to go down before the program adds them back in.\n\nYou can change that 0.2 value with the `max_down_osds_ratio` config value\n\n.. code-block:: yaml\n\n    max_down_osds_ratio: 0.2\n    MAX_DEPTH: 15\n    chaos_rate: 500\n    wait_for_health_ok_t: 360\n    \nIf Ceph is in a dirty/rebalancing state, this tool tries to wait for the cluster to be rebalanced.\nUse `wait_for_health_ok_t` to adjust in case you have a smaller/bigger cluster.\n\n****************\nValidations\n****************\n\n\nAll your nodes (ceph admin node, gateways, vmware hosts, vcenter) need to be up and running before the stress test starts\nTasks will be re-populated when you re-run this tool.\n\n\n*****************\nDeveloped on\n*****************\n\nESXI VMware version 6\npyvmomi (6.7.0)\n\nThere is no guarantee that other versions will work flawlessly\n\n*****************\nDisclaimer\n*****************\n\nThis project is under development and can not be considered as stable.\nIt may cause high load on you VMWare instances and lead to failures.\nUse it at you own risk \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjschmid1%2Fesxi_ceph_chaos_monkey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjschmid1%2Fesxi_ceph_chaos_monkey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjschmid1%2Fesxi_ceph_chaos_monkey/lists"}