存储+调优:存储-IP-SAN

存储+调优:存储-IP-SAN


数据一致性问题
    硬盘(本地,远程同步rsync)
    存储设备(网络)
    
网络存储
    不同接口的磁盘
    1.速率
    2.支持连接更多设备
    3.支持热拔插
存储设备什么互联
   千兆或者万兆的网卡 ip
   光纤网卡,光纤交换机 
   怎么解决大家都去访问存储设备数据的时候的一个竞争性问题
   尽可能减小网络延时,瓶颈不出在网络上
   I/O的效率更高一些


硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏。

IDE
IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”
IDE最高的传输速度133 MB/S

SATA  
使用SATA(Serial ATA)口的硬盘又叫串口硬盘
SATA1.0 100MB/s
SATA2.0 7200rpm 3Gb/秒 

SCSI
SCSI的英文全称为“Small Computer System Interface”(小型计算机系统接口)
Ultra Wide SCSI        40MB
Ultra2 Wide SCSI    80MB
Ultra160 SCSI        160MB
Ultra320 SCSI         320MB

SAS(Serial Attached SCSI)即串行连接SCSI
SAS2 15000rpm 6.0Gb/秒 

固态硬盘(Solid State Disk、IDE FLASH DISK)
SATA3.0 500MB/s

DAS—直连式存储
  直连式存储依赖服务器主机操作系统进行数据的IO读写和存储维护管理,数据备份和恢复要求占用服务器主机资源(包括CPU、系统IO等),数据流需要回流主机再到服务器连接着的磁带机(库),数据备份通常占用服务器主机资源20-30%,因此许多企业用户的日常数据备份常常在深夜或业务系统不繁忙时进行,以免影响正常业务系统的运行。直连式存储的数据量越大,备份和恢复的时间就越长,对服务器硬件的依赖性和影响就越大。 
PC---> 主板---》接口---》数据总线---》硬盘

SCSI 小型计算机系统接口(直连式)
    1.SCSI协议信息
    2.本服务器承担I/O消耗
    


NAS(Network Attached Storage:网络附属存储)是一种将分布、独立的数据整合为大型、集中化管理的数据中心,以便于对不同主机和应用服务器进行访问的技术。按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。目前国际著名的NAS企业有Netapp、EMC、OUO等。

PC-----》交换机----------》  nfs | cifs     lvm     RAID

1.可扩展
2.I/O转移到网络


SAN(存储区域网络及其协议Storage Area Network and SAN Protocols)
  存储区域网络(SAN)是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。一个 SAN 网络由负责网络连接的通信结构、负责组织连接的管理层、存储部件以及计算机系统构成,从而保证数据传输的安全性和力度。 
SAN (NAS+DAS)


        PC
         |
         |
        交换机
             /    \
           /       \
       lvm      lvm
      raid      raid

1.SAN存储被前端使用存储的设备识别为块设备
2.需要实现在网络上传输scsi协议数据
3.光纤协议 FC

ISCSI------》 IP SAN
FC -------》 FC SAN

1.存储节点 iscsi_target
2.前端节点 iscsi_initiator


        -------       ----------
        server1        server2
        -------       ---------
      172.16.1.10       172.16.1.20
           \               /
             \            /
        交换机
              /           \
            /                \
      172.16.1.1       172.16.1.2
       -------           ------
       node1            node2
       --------          -------

node1  node2
[root@node1 ~]# yum install scsi-target-utils
[root@node1 ~]# vim /etc/tgt/targets.conf 
default-driver iscsi


# Continue if tgtadm exits with non-zero code (equivalent of
# --ignore-errors command line option)
#ignore-errors yes


# Sample target with one LUN only. Defaults to allow access for all initiators:

<target iqn.2012-02.com.uplooking:node1.target1>
    backing-store /dev/sdb
    vendor_id node1
    product_id storage1
    initiator-address 172.16.1.10
    initiator-address 172.16.1.20
</target>

[root@node1 ~]# service tgtd start
Starting SCSI target daemon: Starting target framework daemon
  
[root@node1 ~]# netstat -tunpl | grep tgtd
tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      3710/tgtd           
tcp        0      0 :::3260                     :::*                        LISTEN      3710/tgtd           
[root@node1 ~]# tgt-admin --show
Target 1: iqn.2012-02.com.uplooking:node1.target1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: None
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 21475 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: /dev/sdb
    Account information:
    ACL information:
        172.16.1.10
        172.16.1.20


server1 server2

[root@server2 ~]# yum install iscsi-initiator-utils
[root@server2 ~]# iscsiadm -m discovery -t sendtargets -p 172.16.1.1:3260
iscsiadm: can not connect to iSCSI daemon (111)!
iscsiadm: Could not scan /sys/class/iscsi_transport.
iscsiadm: Could not scan /sys/class/iscsi_transport.
iscsiadm: can not connect to iSCSI daemon (111)!
iscsiadm: Cannot perform discovery. Initiatorname required.
iscsiadm: Discovery process to 172.16.1.1:3260 failed to create a discovery session.
iscsiadm: Could not perform SendTargets discovery.

[root@server2 ~]# service iscsid start
Starting iSCSI daemon:                                     [  OK  ]
                                                           [  OK  ]
[root@server2 ~]# iscsiadm -m discovery -t sendtargets -p 172.16.1.1:3260
172.16.1.1:3260,1 iqn.2012-02.com.uplooking:node1.target1
[root@server2 ~]# iscsiadm -m discovery -t sendtargets -p 172.16.1.2:3260
172.16.1.2:3260,1 iqn.2012-02.com.uplooking:node2.target1

[root@server2 ~]# iscsiadm -m node -T iqn.2012-02.com.uplooking:node1.target1 -l
Logging in to [iface: default, target: iqn.2012-02.com.uplooking:node1.target1, portal: 172.16.1.1,3260]
Login to [iface: default, target: iqn.2012-02.com.uplooking:node1.target1, portal: 172.16.1.1,3260]: successful

[root@server2 ~]# iscsiadm -m node -T iqn.2012-02.com.uplooking:node2.target1 -l
Logging in to [iface: default, target: iqn.2012-02.com.uplooking:node2.target1, portal: 172.16.1.2,3260]
Login to [iface: default, target: iqn.2012-02.com.uplooking:node2.target1, portal: 172.16.1.2,3260]: successful


[root@server2 ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2610    20860402+  8e  Linux LVM

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Disk /dev/sdc doesn't contain a valid partition table

[root@server2 ~]# udevinfo -a -p /sys/block/sdb/

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/block/sdb':
    KERNEL=="sdb"
    SUBSYSTEM=="block"
    SYSFS{stat}=="      17       27      352       51        0        0        0        0        0       51       51"
    SYSFS{size}=="41943040"
    SYSFS{removable}=="0"
    SYSFS{range}=="16"
    SYSFS{dev}=="8:16"

  looking at parent device '/devices/platform/host1/session1/target1:0:0/1:0:0:1':
    ID=="1:0:0:1"
    BUS=="scsi"
    DRIVER=="sd"
    SYSFS{ioerr_cnt}=="0x1"
    SYSFS{iodone_cnt}=="0x20"
    SYSFS{iorequest_cnt}=="0x20"
    SYSFS{iocounterbits}=="32"
    SYSFS{timeout}=="60"
    SYSFS{state}=="running"
    SYSFS{rev}=="0001"
    SYSFS{model}=="storage1"
    SYSFS{vendor}=="node1"
    SYSFS{scsi_level}=="6"
    SYSFS{type}=="0"
    SYSFS{queue_type}=="none"
    SYSFS{queue_depth}=="32"
    SYSFS{device_blocked}=="0"

  looking at parent device '/devices/platform/host1/session1/target1:0:0':
    ID=="target1:0:0"
    BUS==""
    DRIVER==""

  looking at parent device '/devices/platform/host1/session1':
    ID=="session1"
    BUS==""
    DRIVER==""

  looking at parent device '/devices/platform/host1':
    ID=="host1"
    BUS==""
    DRIVER==""

  looking at parent device '/devices/platform':
    ID=="platform"
    BUS==""
    DRIVER==""

[root@server2 ~]# vim /etc/udev/rules.d/90-iscsi.rules
[root@server2 ~]# cat /etc/udev/rules.d/90-iscsi.rules
SUBSYSTEM=="block",  SYSFS{size}=="41943040", SYSFS{model}=="storage1", SYSFS{vendor}=="node1", SYMLINK="iscsi/node1-disk"
SUBSYSTEM=="block",  SYSFS{size}=="41943040", SYSFS{model}=="storage2", SYSFS{vendor}=="node2", SYMLINK="iscsi/node2-disk"
[root@server2 ~]# start_udev 
Starting udev:                                             [  OK  ]
[root@server2 ~]# ls -l /dev/iscsi/
total 0
lrwxrwxrwx 1 root root 6 Feb 23 01:35 node1-disk -> ../sdb
lrwxrwxrwx 1 root root 6 Feb 23 01:37 node2-disk -> ../sdc

[root@server2 ~]# scp /etc/udev/rules.d/90-iscsi.rules 172.16.1.10:/etc/udev/rules.d/


[root@server2 ~]# pvcreate /dev/iscsi/node1-disk 
  Physical volume "/dev/iscsi/node1-disk" successfully created
[root@server2 ~]# pvcreate /dev/iscsi/node2-disk 
  Physical volume "/dev/iscsi/node2-disk" successfully created
[root@server2 ~]# 
[root@server2 ~]# vgcreate vgiscsi /dev/iscsi/node1-disk /dev/iscsi/node2-disk
  /dev/hdc: open failed: Read-only file system
  /dev/cdrom: open failed: Read-only file system
  Attempt to close device '/dev/cdrom' which is not open.
  /dev/cdrom: open failed: Read-only file system
  Attempt to close device '/dev/cdrom' which is not open.
  /dev/cdrom: open failed: Read-only file system
  Attempt to close device '/dev/cdrom' which is not open.
  Volume group "vgiscsi" successfully created
[root@server2 ~]# 
[root@server2 ~]# lvcreate -l 250 -n lviscsi vgiscsi
  /dev/hdc: open failed: Read-only file system
  Logical volume "lviscsi" created

[root@server1 ~]# pvscan 
  PV /dev/sdc   VG vgiscsi   lvm2 [20.00 GB / 19.02 GB free]
  PV /dev/sdd   VG vgiscsi   lvm2 [20.00 GB / 20.00 GB free]
  Total: 2 [39.99 GB] / in use: 2 [39.99 GB] / in no VG: 0 [0   ]
[root@server1 ~]# vgchange -ay vgiscsi
  1 logical volume(s) in volume group "vgiscsi" now active
[root@server1 ~]# lvs
  LV      VG      Attr   LSize    Origin Snap%  Move Log Copy%  Convert
  lviscsi vgiscsi -wi-a- 1000.00M   

[root@server2 ~]# yum install gfs2-utils
[root@server2 ~]# yum install kmod-gfs
[root@server2 ~]# modprobe gfs
[root@server2 ~]# lsmod | grep gfs
gfs                   269540  0 
gfs2                  349833  1 lock_dlm
dlm                   113749  12 gfs,lock_dlm
configfs               28753  2 dlm

[root@server2 ~]# mkfs.gfs2 -t iscsi_cluster:lvsicsi -p lock_nolock /dev/vgiscsi/lviscsi 
This will destroy any data on /dev/vgiscsi/lviscsi.

Are you sure you want to proceed? [y/n] y

Device:                    /dev/vgiscsi/lviscsi
Blocksize:                 4096
Device Size                0.98 GB (256000 blocks)
Filesystem Size:           0.98 GB (255997 blocks)
Journals:                  1
Resource Groups:           4
Locking Protocol:          "lock_nolock"
Lock Table:                "iscsi_cluster:lvsicsi"
UUID:                      220DA71F-D2B2-23FC-BE5E-66F90A104D34


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/839019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARTS Week 29

Algorithm 本周的算法题为 2413. 最小偶倍数 给你一个正整数 n &#xff0c;返回 2 和 n 的最小公倍数&#xff08;正整数&#xff09;。 示例 1&#xff1a;输入&#xff1a;n 5输出&#xff1a;10解释&#xff1a;5 和 2 的最小公倍数是 10 。 实现代码如下&#xff1a; con…

由于找不到mfc140u.dll,无法继续执行代码如何解决

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是电脑找不到mfc140u.dll文件。这个问题可能会导致程序无法正常运行或系统崩溃。为了解决这个问题&#xff0c;本文将介绍5种修复方法&#xff0c;帮助大家快速恢复电脑的正常运行。 一&#x…

如何理解kmp的套娃式算法啊?

概念 KMP算法&#xff0c;全称Knuth Morris Pratt算法 。文章大部分内容出自《数据结构与算法之美》 核心思想 假设主串是a&#xff0c;模式串是b 在模式串与主串匹配的过程中&#xff0c;当遇到不可匹配的字符的时候&#xff0c;对已经对比过的字符&#xff0c;是否能找到…

【kubernetes】多 master 高可用集群架构部署

目录 前言 一、环境部署 二、master02 节点部署 1、拷贝相关文件 2、修改配置文件 3、启动各服务并设置开机自启 4、 查看node节点状态 三、负载均衡部署 1、部署 nginx 服务 1.1 编译安装 nginx 1.2 修改 nginx 配置文件 2、部署 keepalived 服务 2.1 yum安装 ke…

通过管理系统完成商品属性维护

文章目录 1.数据库表设计1.商品属性表 2.renren-generator生成CRUD1.基本配置检查1.generator.properties2.application.yml 2.启动RenrenGeneratorApplication.java生成CRUD1.启动后访问localhost:812.生成商品属性表的crud 3.将crud代码集成到项目中1.解压&#xff0c;找到ma…

python科研数据可视化之折线图

例如 &#xff1a; 下面的配色表画出的图很好看。选择喜欢的颜色&#xff0c;找到代码中颜色部分进行修改即可。 代码部分已经有详细的注释&#xff0c;就不一一解释了。另外&#xff0c;如果想要坐标轴从设定的值开始就把下面代码中的范围xlim&#xff0c;ylim进行注释。 imp…

设计模式12——外观模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 外观模式&#xff08;Facade&a…

javaSwing购物系统项目(文档+视频+源码)

摘要 由Java swing实现的一款简单的购物程序&#xff0c;数据库采用的是mysql&#xff0c;该项目非常简单&#xff0c;实现了管理员对商品类型和商品的管理及用户注册登录后浏览商品、加入购物车、购买商品等功能&#xff0c;旨在学习Java 图形界面开发 系统实现 我们先来管理…

CF451E: Devu and Flowers(容斥原理 + 考虑反面 + golang组合模版)

题目截图 题目翻译 题目分析 正难则反&#xff0c;考虑所有不符合的例子 由于n很小&#xff0c;所以可以状态压缩二进制遍历完全部不符合例子的组合 对于不符合的例子&#xff0c;假设其中第i个不符合&#xff0c;那么就消耗掉fi 1个球 以此类推&#xff0c;减剩下s2个球 这时…

一剪梅-答赠云安客刘自果

当众网友看了笔者“边吸氧边动鼠标”的短视频之后&#xff0c;纷纷发来微信问候。其中我的远房亲戚&#xff0c;那个正在潜心写作数十万字的长篇纪实文学《川江向东流》的66岁贤弟刘自果&#xff08;号云安客&#xff0c;亦称自果居士&#xff09;&#xff0c;发来微信鼓励我&a…

【Vue】性能优化

使用 key 对于通过循环生成的列表&#xff0c;应给每个列表项一个稳定且唯一的 key&#xff0c;这有利于在列表变动时&#xff0c;尽量少的删除和新增元素。 使用冻结的对象 冻结的对象&#xff08;Object.freeze(obj)&#xff09;不会被响应化&#xff0c;不可变。 使用函…

【Linux】网络层——IP协议

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;Linux 目录 &#x1f449;&#x1f3fb;IP协议基本概念&#x1f449;&#x1f3fb;IP的协议头格式&#x1f449;&#x1f3fb;IP协议的网段划分五类IP地址子…

mysql数据库主从复制,搭建从库

1 期望效果 假设我们现在有两个服务器&#xff0c;两个服务器都有数据库&#xff0c;然后我们命名一个叫主数据库&#xff08;Master&#xff09;&#xff0c;一个叫从数据库&#xff08;Slave&#xff09; 数据备份和容灾&#xff1a;通过主从复制&#xff0c;可以将主数据库…

618有什么宠物空气净化器推荐?希喂FreAir Lite宠物空气净化器真实体验

一、宠物空气净化器的必要性 掉毛季又来了&#xff0c;猫咪的毛发满天飞&#xff0c;怎么办&#xff1f;我家里的猫咪一到换毛季就掉满地的毛发&#xff0c;尤其喜欢在家里奔跑打闹&#xff0c;结果整个房间都是毛。为了减少家里空气中的浮毛&#xff0c;你都做过哪些努力呢&a…

关于「公 告」根据中华人民共和国法律,Bing 在中国内地暂停 “搜索自动建议” 功能 30 天

当我看见我们大家都这样我可放心了&#xff0c;我打开电脑搜索图片就发生了。 当我看见我们大家都这样我可放心了&#xff0c;坐等攻城狮修复。

关闭以及启动ubuntu图形界面

关闭以及启动ubuntu图形界面 文章目录 关闭以及启动ubuntu图形界面1. 关闭图形界面2. 打开图形界面 如果你误杀了Xorg进程&#xff0c;需要重新启动图形界面&#xff0c;可以按照以下步骤操作&#xff1a; 1. 关闭图形界面 查看当前启动的图形界面&#xff1a; 使用下面命令…

LeetCode刷题之HOT100之比特位计数

今天把仙剑三看完了&#xff0c;茂茂割肉让人无法释怀&#xff0c;眼泪止不住的流。长卿和紫萱的分离似乎也意味着重逢&#xff0c;这就是他们的宿命吧。怅然若失的感觉席卷全身&#xff0c;哎&#xff0c;做题吧。 1、题目描述 2、逻辑分析 题目要求将整数从0到此元素&#…

【GO基础】1. Go语言环境搭建

Go语言环境搭建 Go的三种安装方式Go标准包安装Windows 安装验证是否安装成功 4.Go的第一个程序 Hello World.go Go的三种安装方式 Go有多种安装方式&#xff0c;可以选择自己适合的。这里介绍三种最常见的安装方式&#xff1a; Go源码安装&#xff1a;这是一种标准的软件安装…

零门槛微调大模型:基于 Ludwig 低代码框架使用 LoRA 技术微调实践

一、Ludwig 介绍 自然语言处理 (NLP) 和人工智能 (AI) 的飞速发展催生了许多强大的模型&#xff0c;它们能够理解和生成如同人类般的文本&#xff0c;为聊天机器人、文档摘要等应用领域带来了革命性的改变。然而&#xff0c;释放这些模型的全部潜力需要针对特定用例进行微调。…

QTextEdit 控件上显示信息:

目录 1. 使用 append 方法: 2. 使用 setPlainText 方法 3.例子&#xff1a; 1. 使用 append 方法: 如果你希望在 QTextEdit 控件上追加显示新的信息&#xff0c;可以使用 append 方法。例如&#xff0c;当你想要追加一行新的日志信息&#xff1a; self.text_edit.append(&…