zoukankan      html  css  js  c++  java
  • iscsi脚本

    服务端

    #!/bin/bash
    #测试主机是否可以联网
    echo -e "33[31m即将测试主机是否可以联网33[0m"
    ping -c 4 www.baidu.com
    if [ $? -eq 0 ];then
    		echo -e "33[31m主机可以联网继续脚本33[0m"
    else
    		echo -e "33[31m主机不可联网,即将退出脚本33[0m"
            exit
    fi
    #编写服务端与客户端IP地址
    echo -e "33[31m即将编写服务端与客户端IP地址33[0m"
    sleep 3s
    rm -rf ./ip
    cat >> ./ip <<EOF
    #在后面写IP地址,ip1为服务端,ip2为客户端
    export ip1=
    export ip2=
    EOF
    vi ./ip
    source ./ip
    
    echo -e "33[31m即将关闭firewalld与selinux33[0m"
    sleep 1s
    # firewalld config
    systemctl disable firewalld
    systemctl stop firewalld
    
    #关闭selinux
    setenforce 0
    
    echo -e "33[31m即将配置yum仓库文件33[0m"
    sleep 1s
    #创建本地仓库文件
    mkdir /mnt/cdrom
    mount /dev/sr0 /mnt/cdrom
    
    cat >> /etc/yum.repos.d/a.repo <<EOF
    [a]
    name=a
    baseurl=file:///mnt/cdrom
    gpgcheck=0
    EOF
    
    
    yum install -y wget
    #下载epel7仓库文件
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    yum repolist
    
    sleep 3s
    
    echo -e "33[31m
    即将安装targetcli33[0m"
    sleep 1s
    yum -y install targetcli
    
    echo -e "33[31m
    即将配置targetcli33[0m"
    sleep 1s
    #创建共享文件夹存档点
    mkdir /iscsi_disks
    chmod 777 /iscsi_disks
    
    >/etc/target/saveconfig.json
    cat >> /etc/target/saveconfig.json <<EOF
    {
      "fabric_modules": [], 
      "storage_objects": [
        {
          "attributes": {
            "block_size": 512, 
            "emulate_dpo": 0, 
            "emulate_fua_read": 0, 
            "emulate_fua_write": 1, 
            "emulate_model_alias": 1, 
            "emulate_rest_reord": 0, 
            "emulate_tas": 1, 
            "emulate_tpu": 0, 
            "emulate_tpws": 0, 
            "emulate_ua_intlck_ctrl": 0, 
            "emulate_write_cache": 1, 
            "enforce_pr_isids": 1, 
            "fabric_max_sectors": 8192, 
            "is_nonrot": 0, 
            "max_unmap_block_desc_count": 1, 
            "max_unmap_lba_count": 8192, 
            "max_write_same_len": 4096, 
            "optimal_sectors": 8192, 
            "queue_depth": 128, 
            "unmap_granularity": 1, 
            "unmap_granularity_alignment": 0
          }, 
          "dev": "/iscsi_disks/disk01.img", 
          "name": "disk01", 
          "plugin": "fileio", 
          "size": 2147483648, 
          "write_back": true, 
          "wwn": "3267f7a8-b56b-448e-a0dd-b9f65906e96e"
        }
      ], 
      "targets": [
        {
          "fabric": "iscsi", 
          "tpgs": [
            {
              "attributes": {
                "authentication": 0, 
                "cache_dynamic_acls": 0, 
                "default_cmdsn_depth": 16, 
                "demo_mode_write_protect": 1, 
                "generate_node_acls": 0, 
                "login_timeout": 15, 
                "netif_timeout": 2, 
                "prod_mode_write_protect": 0
              }, 
              "enable": true, 
              "luns": [
                {
                  "index": 0, 
                  "storage_object": "/backstores/fileio/disk01"
                }
              ], 
              "node_acls": [
                {
                  "attributes": {
                    "dataout_timeout": 3, 
                    "dataout_timeout_retries": 5, 
                    "default_erl": 0, 
                    "nopin_response_timeout": 30, 
                    "nopin_timeout": 15, 
                    "random_datain_pdu_offsets": 0, 
                    "random_datain_seq_offsets": 0, 
                    "random_r2t_offsets": 0
                  }, 
                  "chap_password": "password", 
                  "chap_userid": "username", 
                  "mapped_luns": [
                    {
                      "index": 0, 
                      "tpg_lun": 0, 
                      "write_protect": false
                    }
                  ], 
                  "node_wwn": "iqn.2016-10.vdevops.org:vdevops.org"
                }
              ], 
              "parameters": {
                "AuthMethod": "CHAP,None", 
                "DataDigest": "CRC32C,None", 
                "DataPDUInOrder": "Yes", 
                "DataSequenceInOrder": "Yes", 
                "DefaultTime2Retain": "20", 
                "DefaultTime2Wait": "2", 
                "ErrorRecoveryLevel": "0", 
                "FirstBurstLength": "65536", 
                "HeaderDigest": "CRC32C,None", 
                "IFMarkInt": "2048~65535", 
                "IFMarker": "No", 
                "ImmediateData": "Yes", 
                "InitialR2T": "Yes", 
                "MaxBurstLength": "262144", 
                "MaxConnections": "1", 
                "MaxOutstandingR2T": "1", 
                "MaxRecvDataSegmentLength": "8192", 
                "MaxXmitDataSegmentLength": "262144", 
                "OFMarkInt": "2048~65535", 
                "OFMarker": "No", 
                "TargetAlias": "LIO Target"
              }, 
              "portals": [
                {
                  "ip_address": "0.0.0.0", 
                  "iser": false, 
                  "port": 3260
                }
              ], 
              "tag": 1
            }
          ], 
          "wwn": "iqn.2016-10.vdevops.org:storage.target00"
        }
      ]
    }
    
    EOF
    
    echo -e "33[31m
    查看3260端口是否打开33[0m"
    sleep 1s
    ss -napt | grep 3260
    sleep 3s
    
    systemctl enable target
    
    echo -e "33[31m即将使用EPEL源安装scsi-target-utils并配置33[0m"
    sleep 3s
    # 使用EPEL源安装scsi-target-utils
    yum --enablerepo=epel -y install scsi-target-utils 
    # 创建硬盘镜像
    dd if=/dev/zero of=/iscsi_disks/disk01.img count=0 bs=1 seek=2G
    
    cat >> /etc/tgt/targets.conf  <<EOF
    <target iqn.2016-10.vdevops.org:target00>
    backing-store /iscsi_disks/disk01.img
    initiator-address $ip2
    incominguser username password
    </target>
    EOF
    
    #开启并自启服务
    systemctl start tgtd
    systemctl status tgtd |grep Active:
    systemctl enable tgtd
    sleep 3s
    
    #查看状态
    echo -e "33[31m查看服务状态33[0m"
    sleep 3s
    tgtadm --mode target --op show
    
    

    客服端

    #!/bin/bash
    lsblk >lsblk1
    #测试主机是否可以联网
    echo -e "33[31m即将测试主机是否可以联网33[0m"
    if [ $? -eq 0 ];then
    		echo -e "33[31m主机可以联网继续脚本33[0m"
    else
    		echo -e "33[31m主机不可联网,即将退出脚本33[0m"
            exit
    fi
    #编写服务端与客户端IP地址
    echo -e "33[31m
    即将编写服务端与客户端IP地址33[0m"
    sleep 3s
    rm -rf ./ip
    cat >> ./ip <<EOF
    #在后面写IP地址,ip1为服务端,ip2为客户端
    export ip1=
    export ip2=
    EOF
    vi ./ip
    source ./ip
    
    echo -e "33[31m
    即将关闭firewalld与selinux33[0m"
    sleep 1s
    # firewalld config
    systemctl disable firewalld
    systemctl stop firewalld
    #关闭selinux
    setenforce 0
    
    echo -e "33[31m即将配置yum仓库文件33[0m"
    sleep 1s
    #创建本地仓库文件
    mkdir /mnt/cdrom
    mount /dev/sr0 /mnt/cdrom
    
    cat >> /etc/yum.repos.d/a.repo <<EOF
    [a]
    name=a
    baseurl=file:///mnt/cdrom
    gpgcheck=0
    EOF
    
    
    yum install -y wget vim
    #下载epel7仓库文件
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    yum repolist
    
    sleep 3s
    
    echo -e "33[31m即将使用EPEL安装iscsi-initiator-utils并配置33[0m"
    sleep 1s
    #使用EPEL安装iscsi-initiator-utils
    yum -y install iscsi-initiator-utils
    
    echo "InitiatorName=iqn.2016-10.vdevops.org:vdevops.org" >/etc/iscsi/initiatorname.iscsi
    
    echo "node.session.auth.authmethod = CHAP" >>/etc/iscsi/iscsid.conf
    echo "node.session.auth.username = username" >>/etc/iscsi/iscsid.conf
    echo "node.session.auth.password = password" >>/etc/iscsi/iscsid.conf
    
    # 发现target
    iscsiadm -m discovery -t sendtargets -p $ip1
    sleep 5s
    iscsiadm -m node -o show
    #登录target
    iscsiadm -m node --login
    #确认连接状态
    iscsiadm -m session -o show
    #确认分区状况
    echo -e "33[35m等待5s对比看是否多出一块disk磁盘33[0m"
    sleep 5s
    lsblk >lsblk2
    vim -O lsblk1 lsblk2
    
    
    
  • 相关阅读:
    xls与csv文件的区别
    青音,经典爱情语录
    win7用户账户自动登录方法汇总
    How to using Procedure found Lead Blocker
    FTS(3) BSD 库函数手册 遍历文件夹(二)
    FTS(3) BSD 库函数手册 遍历文件夹(一)
    DisplayMetrics类 获取手机显示屏的基本信息 包括尺寸、密度、字体缩放等信息
    About App Distribution 关于应用发布
    FTS(3) 遍历文件夹实例
    OpenCV 2.1.0 with Visual Studio 2008
  • 原文地址:https://www.cnblogs.com/kklinux/p/iscsi_bash.html
Copyright © 2011-2022 走看看