{"id":3300,"date":"2025-04-05T22:20:10","date_gmt":"2025-04-05T14:20:10","guid":{"rendered":"https:\/\/www.yaoge123.com\/blog\/?p=3300"},"modified":"2025-04-07T15:33:32","modified_gmt":"2025-04-07T07:33:32","slug":"lenovo-dss-g-%e7%9b%91%e6%8e%a7","status":"publish","type":"post","link":"https:\/\/www.yaoge123.com\/blog\/archives\/3300","title":{"rendered":"Lenovo DSS-G \u76d1\u63a7"},"content":{"rendered":"\n<p>Lenovo DSS-G \u662f\u8054\u60f3\u5c06GPFS\u96c6\u6210\u7684\u8f6f\u786c\u4ef6\u4e00\u4f53\u5316\u8bbe\u5907\uff0c\u4f5c\u4e3a\u4e00\u5957\u5b58\u50a8\u76d1\u63a7\u975e\u5e38\u91cd\u8981\uff0c\u7b49\u5230\u4e22\u6570\u636e\u7684\u65f6\u5019\u5c31\u8ffd\u6094\u83ab\u53ca\u4e86\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ec4\u4ef6\u6570\u636e\u5e93<\/h2>\n\n\n\n<p>DSS-G \u4f7f\u7528\u7ec4\u4ef6\u6570\u636e\u5e93\uff08compDB \uff09\u6765\u63cf\u8ff0\u786c\u4ef6\u7ec4\u4ef6\uff0c\u5982\u673a\u67dc\u3001DSS-G\u7684\u670d\u52a1\u5668\u548cJBOD\u3002\u4f7f\u7528 DSS-G \u4e0d\u9700\u8981compDB\uff0c\u4f46\u662f\u5065\u5eb7\u76d1\u63a7\u9700\u8981\u3002<\/p>\n\n\n\n<p><strong>\u7b2c\u4e00\u6b65<\/strong>\uff1a\u751f\u6210\u7ec4\u4ef6\u6570\u636e\u5e93<\/p>\n\n\n\n<p>\u59cb\u7ec8\u4f7f\u7528dry run\u6765\u751f\u6210\u7ec4\u4ef6\u6570\u636e\u5e93\uff08compDB\uff09\uff0c\u5176\u4e2ddssg01\u662fDSS-G\u4e24\u53f0\u670d\u52a1\u5668\u7684node class\uff08dssgmkstorage\u65f6\u521b\u5efa\u7684\uff09<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@dss01 ~]# dssgmkcompdb --racktype RACK42U --verbose --dryrun -N dssg01\nDSS-G 5.0c\nParsing options: --racktype RACK42U --verbose --dryrun -N dssg01 --\nEntering verbose mode\nEntering dry run mode\n\nUsing provided nodeclass or node list\ndss01\ndss02\nChecking whether all nodes belong to the same cluster...\n\nUsing rack type \"RACK42U\" of height 42U\n\nChecking server model...\n\n\u2026\u2026\u2026\u2026\n\n# DSS-G210-1\n\nSetting componentDB...\nNote: all commands below support the --dry-run option\nDRYRUN: mmaddcomp -F \/root\/yaoge123gpfs.io01-comp.2025-03-15.233334.851103.stanza --replace\nDRYRUN: mmchcomploc -F \/root\/yaoge123gpfs.io01-comploc.2025-03-15.233334.851103.stanza\nDRYRUN: \/root\/yaoge123gpfs.io01-dispid.2025-03-15.233334.851103.sh\n\nAll done\n<\/code><\/pre>\n\n\n\n<p><strong>\u7b2c\u4e8c\u6b65<\/strong>\uff1a\u68c0\u67e5\u4e24\u4e2astanza\u6587\u4ef6\u5185\u5bb9\uff0c\u5176\u4e2d\u7ec4\u4ef6\u5b89\u88c5\u5728\u673a\u67dc\u4e2d\u7684\u5177\u4f53\u4f4d\u7f6e\u5728 <em>-comploc.<\/em>.stanza \u6587\u4ef6\u4e2d<\/p>\n\n\n\n<p><strong>\u7b2c\u4e09\u6b65<\/strong>\uff1a\u5bfc\u5165\u7ec4\u4ef6\u6570\u636e\u5e93\uff0c\u7167\u6284dssgmkcompdb\u6700\u540e\u9762\u4e09\u884cDRYRUN\u540e\u9762\u7684\u547d\u4ee4\u8fd0\u884c\uff0c\u7136\u540e\u7528mmlscomp\u548cmmlscomploc\u68c0\u67e5\u7ed3\u679c\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@dss01 ~]# mmlscomp\n\n    Rack Components\n\nComp ID  Part Number  Serial Number  Name\n-------  -----------  -------------  ----\n      6  RACK42U      *******        A1\n\n    Server Components\n\nComp ID  Part Number  Serial Number  Name              Node Number\n-------  -----------  -------------  ----------------  -----------\n      9  7D9ECTOLWW   ********       SR655V3-********          101\n     10  7D9ECTOLWW   ********       SR655V3-********          102\n\n    Storage Enclosure Components\n\nComp ID  Part Number  Serial Number  Name            Display ID\n-------  -----------  -------------  --------------  ----------\n      8  7DAHCT0LWW   ********       D4390-********\n\n    Storage Server Components\n\nComp ID  Part Number  Serial Number  Name\n-------  -----------  -------------  ----------\n      7  DSS-G210                    DSS-G210-1\n&#91;root@dss01 ~]# mmlscomploc\n\nRack  Location  Component\n----  --------  ----------------\nA1    U35-36    SR655V3-********\nA1    U33-34    SR655V3-********\nA1    U01-04    D4390-********\n\nStorage Server  Index  Component\n--------------  -----  ----------------\nDSS-G210-1          3  SR655V3-********\nDSS-G210-1          2  SR655V3-********\nDSS-G210-1          1  D4390-********\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u8bbe\u7f6eDSS-G\u76d1\u63a7<\/h2>\n\n\n\n<p>\u56e0\u4e3aDSS-G\u672c\u8eab\u7684\u5197\u4f59\u6027\uff08\u8282\u70b9\u5197\u4f59\u3001\u94fe\u8def\u5197\u4f59\u7b49\uff09\uff0c\u51fa\u73b0\u6545\u969c\u4e0d\u4e00\u5b9a\u4f1a\u5bfc\u81f4\u6574\u4e2a\u6587\u4ef6\u7cfb\u7edf\u5931\u6548\uff0c\u8fd9\u5f80\u5f80\u4f1a\u5bfc\u81f4\u6545\u969c\u6ca1\u6709\u88ab\u7acb\u523b\u53d1\u73b0\uff0c\u4f46\u662f\u8fd9\u4e9b\u6545\u969c\u4f1a\u7834\u574f\u5197\u4f59\u6027\u6216\u5bfc\u81f4\u6027\u80fd\u4e0b\u964d\uff0c\u7ba1\u7406\u5458\u5e94\u8be5\u77e5\u6653\u8fd9\u4e9b\u6545\u969c\u5e76\u79ef\u6781\u4fee\u590d\u3002dssghealthmon \u5b83\u4f1a\u5468\u671f\u6027\uff08\u9ed8\u8ba41\u5c0f\u65f6\uff09\u68c0\u67e5\u6574\u4e2aDSS-G\u7684\u5065\u5eb7\u72b6\u6001\uff0c\u5982\u6709\u6545\u969c\u4f1a\u81ea\u52a8\u53d1\u9001\u90ae\u4ef6\u901a\u77e5\u3002dssghealthmon \u53ef\u4ee5\u901a\u8fc7confluent\u8282\u70b9\u5e26\u5916\u8bbf\u95eeXCC\uff08\u670d\u52a1\u5668\u7684BMC\uff09\u68c0\u67e5\u786c\u4ef6\u5065\u5eb7\u72b6\u6001\uff0c\u6240\u4ee5\u9700\u8981DSS-G\u670d\u52a1\u5668\u5230Confluent\u7684\u514d\u5bc6\u7801SSH\u3002<\/p>\n\n\n\n<p><strong>\u7b2c\u4e00\u6b65<\/strong>\uff1a\u7f16\u8f91\u914d\u7f6e\u6587\u4ef6 \/etc\/dssg\/dssghealthmon.conf<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>contactEmail: \u6545\u969c\u901a\u77e5\u7684Email\uff0c\u5fc5\u586b\u9879\u3002<\/li>\n\n\n\n<li>\u5176\u5b83\u4e0d\u60f3\u586b\u5c31\u90fd\u6ce8\u91ca\u4e86<\/li>\n<\/ul>\n\n\n\n<p><strong>\u7b2c\u4e8c\u6b65\uff1a<\/strong>\u5148\u67e5\u770b\u4e00\u4e0bDSS-G\u7684nodeclass\u540d\u79f0\uff0c\u7136\u540e\u542f\u52a8\u76d1\u63a7<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@dss01 ~]# mmlsnodeclass \nNode Class Name       Members\n--------------------- -----------------------------------------------------------\ndssg01                dss01,dss02\n\n&#91;root@dss01 ~]# dssghealthmon_startup dssg01 confluent\nObtaining Confluent version from management server confluent\n3.11.1\n\nProcessing nodeclass...\nNode Class Name       Members\n--------------------- -----------------------------------------------------------\ndssg01                dss01,dss02\n\nParsing configuration file...\n\nCopying configuration file...\n\nCreating tuple file...\ndss01:dss01:7D9ECTOLWW:********\ndss02:dss02:7D9ECTOLWW:********\n\nCopying tuple file...\n\nSetting or replacing the dssghealthmon_erflist cronjob...\nWarning: dssghealthmon_erflist cronjob has NOT been specified\n\nCreating and copying daemon environment file...\n\nStarting dssghealthmond...\nThe dssghealthmon system has been successfully started\n<\/code><\/pre>\n\n\n\n<p><strong>\u7b2c\u4e09\u6b65\uff1a<\/strong>\u5728\u4e24\u4e2a\u670d\u52a1\u5668\u4e0a\u68c0\u67e5\u76d1\u63a7\u72b6\u6001\u548c\u914d\u7f6e\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@dss01 ~]# dssghealthmon_status dssg01\nProcessing nodeclass...\nNode Class Name       Members\n--------------------- -----------------------------------------------------------\ndssg01                dss01,dss02\n\nObtaining status of the DSS-G health monitor...\ndss01: active\ndss02: active\n&#91;root@dss01 ~]# systemctl status dssghealthmond.service\n\u25cf dssghealthmond.service - DSS-G Health Monitor\n     Loaded: loaded (\/etc\/systemd\/system\/dssghealthmond.service; disabled; preset: disabled)\n     Active: active (running) since Sat 2025-04-05 18:52:43 CST; 1min 57s ago\n    Process: 1361859 ExecStart=\/opt\/lenovo\/dss\/dssghealthmon\/dssghealthmond $NODECLASS $MGMT (code=exited, status=0\/SUCCESS)\n   Main PID: 1361946 (dssghealthmond)\n      Tasks: 2 (limit: 2468168)\n     Memory: 2.3M\n        CPU: 34.410s\n     CGroup: \/system.slice\/dssghealthmond.service\n             \u251c\u25001361946 \/bin\/bash \/opt\/lenovo\/dss\/dssghealthmon\/dssghealthmond dssg01 confluent 1361859\n             \u2514\u25001362172 sleep 3600\n\nApr 05 18:52:43 dss01 systemd&#91;1]: Starting DSS-G Health Monitor...\nApr 05 18:52:43 dss01 systemd&#91;1]: Started DSS-G Health Monitor.\n&#91;root@dss01 ~]# cat \/etc\/dssg\/dssghealthmon.env \nNODECLASS=dssg01\nMGMT=confluent\n&#91;root@dss01 ~]# cat \/etc\/dssg\/dssghealthmon.hosts \ndss01:dss01:7D9ECTOLWW:********\ndss02:dss02:7D9ECTOLWW:********\n\n&#91;root@dss02 ~]# systemctl status dssghealthmond.service\n\u25cf dssghealthmond.service - DSS-G Health Monitor\n     Loaded: loaded (\/etc\/systemd\/system\/dssghealthmond.service; disabled; preset: disabled)\n     Active: active (running) since Sat 2025-04-05 18:52:43 CST; 4min 52s ago\n    Process: 87519 ExecStart=\/opt\/lenovo\/dss\/dssghealthmon\/dssghealthmond $NODECLASS $MGMT (code=exited, status=0\/SUCCESS)\n   Main PID: 87601 (dssghealthmond)\n      Tasks: 2 (limit: 2468168)\n     Memory: 2.2M\n        CPU: 1.344s\n     CGroup: \/system.slice\/dssghealthmond.service\n             \u251c\u250087601 \/bin\/bash \/opt\/lenovo\/dss\/dssghealthmon\/dssghealthmond dssg01 confluent 87519\n             \u2514\u250087823 sleep 3600\n\nApr 05 18:52:43 dss02 systemd&#91;1]: Starting DSS-G Health Monitor...\nApr 05 18:52:43 dss02 systemd&#91;1]: Started DSS-G Health Monitor.\n&#91;root@dss02 ~]# cat \/etc\/dssg\/dssghealthmon.env \nNODECLASS=dssg01\nMGMT=confluent\n&#91;root@dss02 ~]# cat \/etc\/dssg\/dssghealthmon.hosts \ndss01:dss01:7D9ECTOLWW:********\ndss02:dss02:7D9ECTOLWW:********<\/code><\/pre>\n\n\n\n<p><strong>\u7b2c\u56db\u6b65\uff1a<\/strong>\u4e24\u53f0\u670d\u52a1\u5668\u5747\u914d\u7f6e\u548c\u6d4b\u8bd5\u53d1\u90ae\u4ef6\uff0c\u4ee5QQ\u4f01\u4e1a\u90ae\u7bb1\u4e3a\u4f8b\uff0c\u6ce8\u610f\u9700\u8981urlencode<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@dss01 ~]# cat ~\/.mailrc \nset v15-compat\nset mta=smtps:\/\/yaoge%40yaoge123.com:************@smtp.exmail.qq.com:465 smtp-auth=login\nset from=cicam@nju.edu.cn\n&#91;root@dss01 ~]# echo \"$HOSTNAME\" | mailx -s \"TEST\" yaoge@yaoge123.com\n\n&#91;root@dss01 ~]# scp ~\/.mailrc dss02:\/root\/\n.mailrc\n\n&#91;root@dss02 ~]# echo \"$HOSTNAME\" | mailx -s \"TEST\" yaoge@yaoge123.com<\/code><\/pre>\n\n\n\n<p><strong>\u7b2c\u4e94\u6b65\uff1a<\/strong>\u6a21\u62df\u6545\u969c\u6d4b\u8bd5<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@dss01 ~]# mmvdisk rg list\n&#91;root@dss01 ~]# mmvdisk pdisk list --rg dss02\n# \u627e\u5230\u4e00\u4e2apdisk\u6a21\u62df\u5931\u6548\n&#91;root@dss01 ~]# mmvdisk pdisk change --rg dss02 --pdisk e1s44 --simulate-dead\n&#91;root@dss01 ~]# mmvdisk pdisk list --rg dss02 --not-ok\n\n                              declustered                                                \nrecovery group  pdisk            array     paths  capacity  free space  FRU (type)       state\n--------------  ------------  -----------  -----  --------  ----------  ---------------  -----\ndss02           e1s44         DA1              0    20 TiB    1024 GiB  03LC215          simulatedDead\/draining\/replace\n\n# \u53ef\u89c1\u5df2\u7ecf\u5f00\u59cbrebuilding\n&#91;root@dss01 ~]# mmvdisk rg list --rg dss02 --all\n\n                                                                        needs    user \nrecovery group  node class  active   current or master server          service  vdisks  remarks\n--------------  ----------  -------  --------------------------------  -------  ------  -------\ndss02           dssg01      yes      dss02                             yes           2  \n\n\u2026\u2026\n\ndeclustered   needs                         vdisks       pdisks           capacity     \n   array     service  type    BER    trim  user log  total spare rt  total raw free raw  background task\n-----------  -------  ----  -------  ----  ---- ---  ----- ----- --  --------- --------  ---------------\nNVR          no       NVR   enable   -        0   1      2     0  1          -        -  scrub 14d (66%)\nSSD          no       SSD   enable   -        0   1      1     0  1          -        -  scrub 14d (20%)\nDA1          yes      HDD   enable   no       2   1     44     2  2    834 TiB  144 GiB  rebuild-1r (8%)\n\n\u2026\u2026\n\nvdisk               RAID code        disk group fault tolerance         remarks\n------------------  ---------------  ---------------------------------  -------\nRG002LOGHOME        4WayReplication  -                                  rebuilding\nRG002LOGTIP         2WayReplication  1 pdisk                            \nRG002LOGTIPBACKUP   Unreplicated     0 pdisk                            \nRG002VS001          3WayReplication  -                                  rebuilding\nRG002VS002          8+2p             -                                  rebuilding<\/code><\/pre>\n\n\n\n<p><strong>\u7b2c\u516d\u6b65\uff1a<\/strong>\u7b49\u6536\u5230\u62a5\u8b66\u90ae\u4ef6\u540e\uff0c\u6062\u590d\u6b63\u5e38<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@dss01 ~]# mmvdisk pdisk change --rg dss02 --pdisk e1s44 --revive\n&#91;root@dss01 ~]# mmvdisk pdisk list --rg dss02 --not-ok\nmmvdisk: All pdisks of recovery group 'dss02' are ok.<\/code><\/pre>\n\n\n\n<p><strong>\u7b2c\u4e03\u6b65\uff1a<\/strong>\u68c0\u67e5\u65e5\u5fd7<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\/var\/log\/dssg\/dssghealthmond.log.&lt;timestamp> \u662f\u5468\u671f\u6027\u72b6\u6001\u68c0\u67e5\u7684\u65e5\u5fd7\uff0c\u65f6\u95f4\u6233\u662f\u5065\u5eb7\u68c0\u67e5\u670d\u52a1\u542f\u52a8\u7684\u65f6\u523b\uff0c\u6bcf\u6b21\u5468\u671f\u68c0\u67e5\u7684\u65e5\u5fd7\u4f1a\u9644\u52a0\u5728\u6587\u4ef6\u672b\u5c3e\u3002\u67e5\u770b\u4e24\u4e2a\u670d\u52a1\u5668\u65e5\u5fd7\u53ef\u89c1\u53ea\u6709\u4e00\u4e2a\u670d\u52a1\u5668\u5b9e\u9645\u8fdb\u884c\u4e86\u5065\u5eb7\u68c0\u67e5\u7684\u52a8\u4f5c\uff0c\u53e6\u4e00\u4e2a\u670d\u52a1\u5668\u77e5\u9053\u5b83\u4e0d\u662fleader\u5c31\u4e0d\u5e72\u4e86\u3002<\/li>\n\n\n\n<li>\/var\/log\/dssg\/dssghealthmon.erf_* \u662f\u6545\u969c\u65e5\u5fd7\uff0c\u6587\u4ef6\u540d\u4e2d\u5305\u542b\u6545\u969c\u7c7b\u578b\u3001\u90e8\u4ef6\u6807\u8bc6\u548c\u65f6\u95f4\u6233\uff0c\u62a5\u8b66\u90ae\u4ef6\u6b63\u6587\u5c31\u662f\u8fd9\u4e2a\u6587\u4ef6\u7684\u5185\u5bb9\u3002<\/li>\n\n\n\n<li>\u4e00\u65e6\u89e3\u51b3\u6545\u969c\u540e\uff0c\u5e94\u8be5\u5728DSS\u7684\u6240\u6709\u8282\u70b9\u4e0a\u5220\u9664ERF\u6587\u4ef6\u3002<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Lenovo DSS-G \u662f\u8054\u60f3\u5c06GPFS\u96c6\u6210\u7684\u8f6f\u786c\u4ef6\u4e00\u4f53\u5316\u8bbe\u5907\uff0c\u4f5c\u4e3a\u4e00\u5957\u5b58\u50a8\u76d1\u63a7\u975e\u5e38\u91cd\u8981\uff0c\u7b49\u5230\u4e22\u6570\u636e\u7684\u65f6\u5019\u5c31 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[198,1],"tags":[],"class_list":["post-3300","post","type-post","status-publish","format-standard","hentry","category-hpc","category-1"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paOwEq-Re","_links":{"self":[{"href":"https:\/\/www.yaoge123.com\/blog\/wp-json\/wp\/v2\/posts\/3300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yaoge123.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yaoge123.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yaoge123.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yaoge123.com\/blog\/wp-json\/wp\/v2\/comments?post=3300"}],"version-history":[{"count":10,"href":"https:\/\/www.yaoge123.com\/blog\/wp-json\/wp\/v2\/posts\/3300\/revisions"}],"predecessor-version":[{"id":3335,"href":"https:\/\/www.yaoge123.com\/blog\/wp-json\/wp\/v2\/posts\/3300\/revisions\/3335"}],"wp:attachment":[{"href":"https:\/\/www.yaoge123.com\/blog\/wp-json\/wp\/v2\/media?parent=3300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yaoge123.com\/blog\/wp-json\/wp\/v2\/categories?post=3300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yaoge123.com\/blog\/wp-json\/wp\/v2\/tags?post=3300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}