{"id":16065,"date":"2024-11-18T17:34:45","date_gmt":"2024-11-18T09:34:45","guid":{"rendered":"https:\/\/fwq.ai\/blog\/16065\/"},"modified":"2024-11-18T17:34:45","modified_gmt":"2024-11-18T09:34:45","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8linux%e4%b8%8a%e9%85%8d%e7%bd%ae%e9%9b%86%e7%be%a4%e6%96%87%e4%bb%b6%e7%b3%bb%e7%bb%9f","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/16065\/","title":{"rendered":"\u5982\u4f55\u5728Linux\u4e0a\u914d\u7f6e\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf"},"content":{"rendered":"<p>\u5982\u4f55\u5728linux\u4e0a\u914d\u7f6e\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf<\/p>\n<p>\u5f15\u8a00\uff1a<br \/>\u5728\u73b0\u4ee3\u6280\u672f\u65f6\u4ee3\uff0c\u901a\u8fc7\u914d\u7f6e\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u5728Linux\u670d\u52a1\u5668\u4e0a\u5b9e\u73b0\u9ad8\u53ef\u7528\u3001\u9ad8\u6027\u80fd\u7684\u6587\u4ef6\u7cfb\u7edf\u6b63\u53d8\u5f97\u8d8a\u6765\u8d8a\u91cd\u8981\u3002\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u53ef\u4ee5\u63d0\u4f9b\u5bf9\u591a\u4e2a\u4e3b\u673a\u5171\u4eab\u6587\u4ef6\u7cfb\u7edf\u7684\u652f\u6301\uff0c\u4f7f\u5f97\u591a\u4e2a\u4e3b\u673a\u53ef\u4ee5\u540c\u65f6\u8bfb\u53d6\u548c\u5199\u5165\u6587\u4ef6\u3002\u672c\u6587\u5c06\u4ecb\u7ecd\u5982\u4f55\u5728Linux\u4e0a\u914d\u7f6e\u4e00\u4e2a\u57fa\u672c\u7684\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\uff0c\u4ee5\u53ca\u63d0\u4f9b\u76f8\u5e94\u7684\u4ee3\u7801\u793a\u4f8b\u3002<\/p>\n<p>\u7b2c\u4e00\u90e8\u5206\uff1a\u6982\u8ff0<br \/>\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u57fa\u672c\u4e0a\u662f\u5728\u591a\u4e2a\u4e3b\u673a\u4e0a\u540c\u65f6\u8fd0\u884c\u7684\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u3002\u5b83\u901a\u8fc7\u5c06\u591a\u4e2a\u5b58\u50a8\u8282\u70b9\u8fde\u63a5\u5230\u4e00\u4e2a\u5171\u4eab\u5b58\u50a8\u8bbe\u5907\u6765\u5b9e\u73b0\u6570\u636e\u7684\u5171\u4eab\u548c\u5197\u4f59\u5b58\u50a8\u3002\u5728\u8bbe\u7f6e\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u4e4b\u524d\uff0c\u6211\u4eec\u9700\u8981\u786e\u4fdd\u6240\u6709\u8282\u70b9\u90fd\u80fd\u591f\u5171\u4eab\u5b58\u50a8\u8bbe\u5907\uff0c\u5e76\u5177\u5907\u76f8\u540c\u7684\u7f51\u7edc\u8fde\u63a5\u3002<\/p>\n<p>\u7b2c\u4e8c\u90e8\u5206\uff1a\u5b89\u88c5\u548c\u914d\u7f6e\u6587\u4ef6\u7cfb\u7edf<\/p>\n<ol>\n<li>\n<p>\u5b89\u88c5\u4f9d\u8d56\u8f6f\u4ef6\u5305<br \/>\u5728Linux\u7cfb\u7edf\u4e0a\uff0c\u6211\u4eec\u9700\u8981\u5b89\u88c5\u4e00\u4e9b\u4f9d\u8d56\u8f6f\u4ef6\u5305\uff0c\u4ee5\u652f\u6301\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u7684\u6b63\u5e38\u8fd0\u884c\u3002\u4f8b\u5982\uff0c\u5728Ubuntu\u4e0a\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5\u6240\u9700\u7684\u8f6f\u4ef6\u5305\uff1a<\/p>\n<pre>sudo apt-get install pacemaker corosync ocfs2-tools<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/li>\n<li>\n<p>\u914d\u7f6e\u7f51\u7edc\u8fde\u63a5<br \/>\u4e3a\u4e86\u4f7f\u591a\u4e2a\u4e3b\u673a\u80fd\u591f\u76f8\u4e92\u901a\u4fe1\uff0c\u6211\u4eec\u9700\u8981\u914d\u7f6e\u7f51\u7edc\u8fde\u63a5\u3002\u53ef\u4ee5\u901a\u8fc7\u7f16\u8f91\u7f51\u7edc\u914d\u7f6e\u6587\u4ef6\u6765\u914d\u7f6e\u7f51\u7edc\u8fde\u63a5\u7684\u53c2\u6570\u3002\u4f8b\u5982\uff0c\u5728Ubuntu\u4e0a\u53ef\u4ee5\u7f16\u8f91\/etc\/network\/interfaces\u6587\u4ef6\uff1a<\/p>\n<pre>sudo vi \/etc\/network\/interfaces<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>\u7136\u540e\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<pre>auto eth0\niface eth0 inet static\n address 192.168.1.10\n netmask 255.255.255.0\n gateway 192.168.1.1<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/li>\n<li>\n<p>\u914d\u7f6e\u7fa4\u96c6\u8f6f\u4ef6<br \/>\u5728\u914d\u7f6e\u7fa4\u96c6\u8f6f\u4ef6\u4e4b\u524d\uff0c\u6211\u4eec\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u5171\u4eab\u5b58\u50a8\u8bbe\u5907\u3002\u53ef\u4ee5\u4f7f\u7528\u50cfiSCSI\u8fd9\u6837\u7684\u6280\u672f\u6765\u521b\u5efa\u5171\u4eab\u5b58\u50a8\u3002\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u5b89\u88c5iSCSI\u8f6f\u4ef6\u5305\uff1a<\/p>\n<pre>sudo apt-get install tgt<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>\u7136\u540e\uff0c\u6839\u636e\u670d\u52a1\u5668\u7684\u9700\u6c42\u914d\u7f6e\u5171\u4eab\u5b58\u50a8\u8bbe\u5907\u3002\u4f8b\u5982\uff0c\u5728Ubuntu\u4e0a\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u521b\u5efa\u4e00\u4e2aiSCSI\u8bbe\u5907\uff1a<\/p>\n<pre>sudo tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2021-01.com.example:storage\nsudo tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b \/dev\/sdb<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/li>\n<li>\n<p>\u914d\u7f6e\u96c6\u7fa4<br \/>\u5728\u6240\u6709\u8282\u70b9\u4e0a\u5b89\u88c5\u5e76\u914d\u7f6e\u7fa4\u96c6\u8f6f\u4ef6\uff0c\u5982pacemaker\u548ccorosync\u3002\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u8fdb\u884c\u5b89\u88c5\uff1a<\/p>\n<pre>sudo apt-get install pacemaker corosync<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>\u7136\u540e\uff0c\u7f16\u8f91\/etc\/corosync\/corosync.conf\u6587\u4ef6\uff0c\u914d\u7f6e\u7fa4\u96c6\u53c2\u6570\uff1a<\/p>\n<pre>sudo vi \/etc\/corosync\/corosync.conf<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>\u4f8b\u5982\uff0c\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\u914d\u7f6e\u6587\u4ef6\uff1a<\/p>\n<pre>totem {\n version: 2\n secauth: on\n cluster_name: mycluster\n transport: udpu\n}\n\nnodelist {\n node {\n     name: node1\n     ring0_addr: 10.0.0.1\n }\n node {\n     name: node2\n     ring0_addr: 10.0.0.2\n }\n node {\n     name: node3\n     ring0_addr: 10.0.0.3\n }\n}\n\nquorum {\n provider: corosync_votequorum\n two_node: 1\n}\n\nlogging {\n to_logfile: yes\n logfile: \/var\/log\/corosync.log\n to_syslog: yes\n}<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/li>\n<\/ol>\n<p>\u7b2c\u4e09\u90e8\u5206\uff1a\u6d4b\u8bd5\u548c\u6545\u969c\u6392\u9664<\/p>\n<ol>\n<li>\n<p>\u542f\u52a8\u96c6\u7fa4\u8f6f\u4ef6<br \/>\u5728\u6bcf\u4e2a\u8282\u70b9\u4e0a\u542f\u52a8\u96c6\u7fa4\u8f6f\u4ef6\uff1a<\/p>\n<pre>sudo service corosync start\nsudo service pacemaker start<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/li>\n<li>\n<p>\u914d\u7f6e\u96c6\u7fa4\u8d44\u6e90<br \/>\u901a\u8fc7\u4f7f\u7528\u96c6\u7fa4\u7ba1\u7406\u5de5\u5177\uff0c\u5982crmsh\u6216pcs\uff0c\u914d\u7f6e\u96c6\u7fa4\u8d44\u6e90\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\u4f7f\u7528pcs\u914d\u7f6e\u96c6\u7fa4\u8d44\u6e90\u7684\u547d\u4ee4\uff1a<\/p>\n<pre>sudo pcs resource create fs ocf:heartbeat:Filesystem device=\"\/dev\/sdb\" directory=\"\/mnt\" fstype=\"ocfs2\" cluster_options=\"noatime\" op start timeout=\"90s\" op stop timeout=\"100s\" op monitor interval=\"10s\"<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/li>\n<li>\n<p>\u6d4b\u8bd5\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf<br \/>\u5728\u4e00\u4e2a\u8282\u70b9\u4e0a\u6302\u8f7d\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u5e76\u8fdb\u884c\u8bfb\u5199\u64cd\u4f5c\uff1a<\/p>\n<pre>sudo mount \/dev\/sdb \/mnt<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/li>\n<\/ol>\n<p>\u7ed3\u8bba\uff1a<br \/>\u901a\u8fc7\u672c\u6587\u7684\u4ecb\u7ecd\uff0c\u6211\u4eec\u4e86\u89e3\u5230\u5982\u4f55\u5728Linux\u4e0a\u914d\u7f6e\u4e00\u4e2a\u57fa\u672c\u7684\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u3002\u5728\u5b9e\u9645\u7684\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u60a8\u53ef\u80fd\u9700\u8981\u66f4\u590d\u6742\u7684\u914d\u7f6e\u6765\u5b9e\u73b0\u66f4\u9ad8\u7ea7\u7684\u529f\u80fd\u548c\u6027\u80fd\u3002\u4f46\u662f\uff0c\u8fd9\u4e2a\u57fa\u7840\u914d\u7f6e\u53ef\u4ee5\u5e2e\u52a9\u60a8\u5f00\u59cb\u4f7f\u7528\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\uff0c\u5e76\u4e3a\u60a8\u63d0\u4f9b\u4e00\u4e2a\u5b66\u4e60\u548c\u5b9e\u9a8c\u7684\u5e73\u53f0\u3002<\/p>\n<p>\u53c2\u8003\u6587\u732e\uff1a<\/p>\n<ol>\n<li>Ubuntu\u5b98\u65b9\u6587\u6863\uff1ahttps:\/\/help.ubuntu.com\/<\/li>\n<li>Linux Cluster HOWTO: http:\/\/linux-ha.org\/<\/li>\n<li>Corosync\u5b98\u65b9\u6587\u6863\uff1ahttps:\/\/corosync.github.io\/corosync\/<\/li>\n<\/ol>\n<p>\u4ee3\u7801\u793a\u4f8b\uff1a<\/p>\n<pre>#!\/bin\/bash\n\n# Set up network interfaces\necho \"auto eth0\" &amp;gt;&amp;gt; \/etc\/network\/interfaces\necho \"iface eth0 inet static\" &amp;gt;&amp;gt; \/etc\/network\/interfaces\necho \"address 192.168.1.10\" &amp;gt;&amp;gt; \/etc\/network\/interfaces\necho \"netmask 255.255.255.0\" &amp;gt;&amp;gt; \/etc\/network\/interfaces\necho \"gateway 192.168.1.1\" &amp;gt;&amp;gt; \/etc\/network\/interfaces\n\n# Install required packages\napt-get update\napt-get install -y pacemaker corosync ocfs2-tools\n\n# Create iSCSI storage device\ntgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2021-01.com.example:storage\ntgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b \/dev\/sdb\n\n# Install and configure cluster software\napt-get install -y pacemaker corosync\ncat  \/etc\/corosync\/corosync.conf\ntotem {\n    version: 2\n    secauth: on\n    cluster_name: mycluster\n    transport: udpu\n}\n\nnodelist {\n    node {\n        name: node1\n        ring0_addr: 10.0.0.1\n    }\n    node {\n        name: node2\n        ring0_addr: 10.0.0.2\n    }\n    node {\n        name: node3\n        ring0_adddr: 10.0.0.3\n    }\n}\n\nquorum {\n    provider: corosync_votequorum\n    two_node: 1\n}\n\nlogging {\n    to_logfile: yes\n    logfile: \/var\/log\/corosync.log\n    to_syslog: yes\n}\nEOF\n\n# Start cluster software\nservice corosync start\nservice pacemaker start\n\n# Configure cluster resource\npcs resource create fs ocf:heartbeat:Filesystem device=\"\/dev\/sdb\" directory=\"\/mnt\" fstype=\"ocfs2\" cluster_options=\"noatime\" op start timeout=\"90s\" op stop timeout=\"100s\" op monitor interval=\"10s\"\n\n# Mount cluster filesystem\nmount \/dev\/sdb \/mnt<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>\u672c\u6587\u4ecb\u7ecd\u4e86\u5982\u4f55\u5728linux\u4e0a\u914d\u7f6e\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\uff0c\u5e76\u63d0\u4f9b\u4e86\u76f8\u5e94\u7684\u4ee3\u7801\u793a\u4f8b\u3002\u901a\u8fc7\u6309\u7167\u672c\u6587\u7684\u6b65\u9aa4\u8fdb\u884c\u64cd\u4f5c\uff0c\u60a8\u53ef\u4ee5\u5728Linux\u670d\u52a1\u5668\u4e0a\u5b9e\u73b0\u9ad8\u53ef\u7528\u3001\u9ad8\u6027\u80fd\u7684\u6587\u4ef6\u7cfb\u7edf\u3002\u5e0c\u671b\u8fd9\u7bc7\u6587\u7ae0\u80fd\u591f\u5bf9\u60a8\u6709\u6240\u5e2e\u52a9\u3002<\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u5982\u4f55\u5728Linux\u4e0a\u914d\u7f6e\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u66f4\u591a\u8bf7\u5173\u6ce8\u7c73\u4e91\u5176\u5b83\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5982\u4f55\u5728linux\u4e0a\u914d\u7f6e\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf \u5f15\u8a00\uff1a\u5728\u73b0\u4ee3\u6280\u672f\u65f6\u4ee3\uff0c\u901a\u8fc7\u914d\u7f6e\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u5728Linux\u670d\u52a1\u5668\u4e0a\u5b9e\u73b0\u9ad8\u53ef\u7528\u3001\u9ad8\u6027\u80fd\u7684\u6587\u4ef6\u7cfb\u7edf\u6b63\u53d8\u5f97\u8d8a\u6765\u8d8a\u91cd\u8981\u3002\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u53ef\u4ee5\u63d0\u4f9b\u5bf9\u591a\u4e2a\u4e3b\u673a\u5171\u4eab\u6587\u4ef6\u7cfb\u7edf\u7684\u652f\u6301\uff0c\u4f7f\u5f97\u591a\u4e2a\u4e3b\u673a\u53ef\u4ee5\u540c\u65f6\u8bfb\u53d6\u548c\u5199\u5165\u6587\u4ef6\u3002\u672c\u6587\u5c06\u4ecb\u7ecd\u5982\u4f55\u5728Linux\u4e0a\u914d\u7f6e\u4e00\u4e2a\u57fa\u672c\u7684\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\uff0c\u4ee5\u53ca\u63d0\u4f9b\u76f8\u5e94\u7684\u4ee3\u7801\u793a\u4f8b\u3002 \u7b2c\u4e00\u90e8\u5206\uff1a\u6982\u8ff0\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u57fa\u672c\u4e0a\u662f\u5728\u591a\u4e2a\u4e3b\u673a\u4e0a\u540c\u65f6\u8fd0\u884c\u7684\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u3002\u5b83\u901a\u8fc7\u5c06\u591a\u4e2a\u5b58\u50a8\u8282\u70b9\u8fde\u63a5\u5230\u4e00\u4e2a\u5171\u4eab\u5b58\u50a8\u8bbe\u5907\u6765\u5b9e\u73b0\u6570\u636e\u7684\u5171\u4eab\u548c\u5197\u4f59\u5b58\u50a8\u3002\u5728\u8bbe\u7f6e\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u4e4b\u524d\uff0c\u6211\u4eec\u9700\u8981\u786e\u4fdd\u6240\u6709\u8282\u70b9\u90fd\u80fd\u591f\u5171\u4eab\u5b58\u50a8\u8bbe\u5907\uff0c\u5e76\u5177\u5907\u76f8\u540c\u7684\u7f51\u7edc\u8fde\u63a5\u3002 \u7b2c\u4e8c\u90e8\u5206\uff1a\u5b89\u88c5\u548c\u914d\u7f6e\u6587\u4ef6\u7cfb\u7edf \u5b89\u88c5\u4f9d\u8d56\u8f6f\u4ef6\u5305\u5728Linux\u7cfb\u7edf\u4e0a\uff0c\u6211\u4eec\u9700\u8981\u5b89\u88c5\u4e00\u4e9b\u4f9d\u8d56\u8f6f\u4ef6\u5305\uff0c\u4ee5\u652f\u6301\u96c6\u7fa4\u6587\u4ef6\u7cfb\u7edf\u7684\u6b63\u5e38\u8fd0\u884c\u3002\u4f8b\u5982\uff0c\u5728Ubuntu\u4e0a\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5\u6240\u9700\u7684\u8f6f\u4ef6\u5305\uff1a sudo apt-get install pacemaker corosync ocfs2-tools \u767b\u5f55\u540e\u590d\u5236 \u914d\u7f6e\u7f51\u7edc\u8fde\u63a5\u4e3a\u4e86\u4f7f\u591a\u4e2a\u4e3b\u673a\u80fd\u591f\u76f8\u4e92\u901a\u4fe1\uff0c\u6211\u4eec\u9700\u8981\u914d\u7f6e\u7f51\u7edc\u8fde\u63a5\u3002\u53ef\u4ee5\u901a\u8fc7\u7f16\u8f91\u7f51\u7edc\u914d\u7f6e\u6587\u4ef6\u6765\u914d\u7f6e\u7f51\u7edc\u8fde\u63a5\u7684\u53c2\u6570\u3002\u4f8b\u5982\uff0c\u5728Ubuntu\u4e0a\u53ef\u4ee5\u7f16\u8f91\/etc\/network\/interfaces\u6587\u4ef6\uff1a sudo vi \/etc\/network\/interfaces \u767b\u5f55\u540e\u590d\u5236 \u7136\u540e\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a auto eth0 iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.1 \u767b\u5f55\u540e\u590d\u5236 \u914d\u7f6e\u7fa4\u96c6\u8f6f\u4ef6\u5728\u914d\u7f6e\u7fa4\u96c6\u8f6f\u4ef6\u4e4b\u524d\uff0c\u6211\u4eec\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u5171\u4eab\u5b58\u50a8\u8bbe\u5907\u3002\u53ef\u4ee5\u4f7f\u7528\u50cfiSCSI\u8fd9\u6837\u7684\u6280\u672f\u6765\u521b\u5efa\u5171\u4eab\u5b58\u50a8\u3002\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u5b89\u88c5iSCSI\u8f6f\u4ef6\u5305\uff1a sudo apt-get install tgt \u767b\u5f55\u540e\u590d\u5236 \u7136\u540e\uff0c\u6839\u636e\u670d\u52a1\u5668\u7684\u9700\u6c42\u914d\u7f6e\u5171\u4eab\u5b58\u50a8\u8bbe\u5907\u3002\u4f8b\u5982\uff0c\u5728Ubuntu\u4e0a\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u521b\u5efa\u4e00\u4e2aiSCSI\u8bbe\u5907\uff1a sudo tgtadm &#8211;lld iscsi &#8211;op new &#8211;mode target &#8211;tid 1 -T iqn.2021-01.com.example:storage sudo tgtadm &#8211;lld iscsi &#8211;op [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-16065","post","type-post","status-publish","format-standard","hentry","category-os"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/16065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=16065"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/16065\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=16065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=16065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=16065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}