代码编织梦想

本篇介绍在Ubuntu系统(虚拟机)上进行存储的基本操作和设置。

一、添加和扩容分区

1. 基础知识

硬盘一般分为IDE硬盘、SCSI硬盘和SATA硬盘三种,在Linux系统中,IDE接口的硬盘被称为hd,SCSI和SATA接口的硬盘则被称为sd,其中IDE硬盘基本上已经淘汰,现在市面上最常见的就是SATA接口的硬盘,第1块硬盘称为sda,第2块硬盘称为sdb……,依此类推。
一块硬盘最多有4个主分区,主分区以外的分区称为扩展分区,硬盘可以没有扩展分区,但是一定要有主分区,在主分区中要有一个激活分区用来启动Windows系统,在扩展分区中可以建立若干个逻辑分区,因此,最合理的分区方式应该最多分三个主分区,一个扩展分区,这样可以有效地利用有限的主分区,然后在扩展分区中建立逻辑分区。
在Linux系统中每一个硬盘总共最多有16个分区,硬盘上的4个主分区,分别标识为sdal、sda2、sda3和sda4,逻辑分区则从sda5开始标识一直到sda16。

2. 区分LVM的几个概念:

LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。
物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda、/dev/sda等等,是存储系统最低层的存储单元。
物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(logical volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
其中,物理卷(PV)被由大小等同的基本单元PE组成。一个卷组由一个或多个物理卷组成,PE和LE有着一一对应的关系。逻辑卷建立在卷组上。逻辑卷就相当于非LVM系统的磁盘分区,可以在其上创建文件系统。

3. 创建分区:添加硬盘–创建分区–格式化分区–挂载

(1)添加硬盘
在虚拟机的设置中添加一块硬盘,选择SCSI或者SATA接口。

(2)新建分区

# 查看硬盘分区(物理分区)
yang@Ubuntu:~$ ls /dev/sd*
# 应该有一个/dev/sdb的硬盘,该硬盘未分区,未格式化,也未加入逻辑卷和逻辑卷组。

# 查看硬盘大小
yang@Ubuntu:~$ fdisk -l /dev/sdb

# 新建硬盘分区
yang@Ubuntu:~$ fdisk /dev/sdb
依此执行:
n: 生成新分区
g: 生成新的分区表
w: 将表写入磁盘并退出

# 再次查看分区(物理分区)
yang@Ubuntu:~$ ls /dev/sd*

# 创建Physical Volumn并查看
yang@Ubuntu:~$ pvcreate /dev/sdb1
yang@Ubuntu:~$ pvdisplay

# 创建名为data的卷组(Volumn Group)并查看
yang@Ubuntu:~$ vgcreate data /dev/sdb1
yang@Ubuntu:~$ vgdisplay

# 创建Logical Volumn并查看
yang@Ubuntu:~$ lvcreate -l 5119 data -n data1
yang@Ubuntu:~$ lvdisplay

(3)格式化分区

# 格式化
yang@Ubuntu:~$ mkfs.xfs /dev/mapper/data-data1

(4)挂载

# 创建文件夹并将新建的逻辑卷挂载
yang@Ubuntu:~$ mkdir /data
yang@Ubuntu:~$ mount /dev/mapper/data-data1 /data

# 查看全部的挂载情况
yang@Ubuntu:~$ df -kh

# 设置开机自启动
yang@Ubuntu:~$ vi /etc/fstab
添加:
/dev/mapper/data-data1 /data xfs defaults 0 2
yang@Ubuntu:~$ reboot

4. 扩容分区

扩容分区是在原有分区的基础上,添加一个卷组,并将其添加到原有分区的逻辑卷中。

# 之前的步骤和新建分区相同
# 创建卷组
yang@Ubuntu:~$ vgcreate data /dev/sdb1
yang@Ubuntu:~$ vgdisplay

# 扩容逻辑卷
yang@Ubuntu:~$ lvdisplay
yang@Ubuntu:~$ lvextend /dev/ubuntu-vg/ubuntu-lv /dev/sdb1
yang@Ubuntu:~$ lvdisplay

二、硬盘挂载

1. 通过mount/umount命令临时挂载

2. 通过修改/etc/fstab文件永久挂载

root@Ubuntu:~$ vi /etc/fstab
添加:/dev/mapper/data-data1 /data xfs defaults 0 2
(源地址 挂载地址 挂载格式 deaults 0 n)

3. 查看挂载信息

# 查看所有磁盘状态
root@Ubuntu:~$ fdisk -l

# 查看已挂载文件信息状态
root@Ubuntu:~$ df -t
root@Ubuntu:~$ df -kh

# 查看已挂载文件信息结构
root@Ubuntu:~$ lsblk -f

三、安装 NFS-server

1. NFS服务器简介

NFS(Network File System)系统允许通过挂载的方式在多台主机之间进行文件共享,是一个非常稳定的(可移植)网络文件系统,主要被使用于中小企业的后端文件共享。大型企业会采用更复杂的分布式存储。

2. Ubuntu系统安装NFS服务器:

# 安装服务器,安装后默认会自动启动服务
root@Ubuntu:~$ apt install nfs-kernel-server

# 查看nfs版本信息
root@Ubuntu:~$ cat /proc/fs/nfsd/versions

# 配置NFS服务器并创建共享目录
root@Ubuntu:~$ vi /etc/idmapd.conf
添加:Domain = test.com

root@Ubuntu:~$ mkdir /data
root@Ubuntu:~$ vi /etc/exports
添加:/data 192.168.17.132(rw, no_root_squash)
# 注:/data为共享文件目录,IP为客户端IP

# 重启服务
root@Ubuntu:~$ service nfs-kernel-server  restart

# 设置开机自启动
root@Ubuntu:~$ vi /etc/fstab
添加:nfsserver:/data /mnt nfs deaults 0 0

3. 客户端配置

# 安装服务器会将客户端一起安装
root@Ubuntu:~$ apt install nfs-kernel-server
# 或只安装客户端
root@Ubuntu:~$ apt install nfs-common

# 配置客户端:
root@Ubuntu:~$ vi /etc/idmapd.conf
添加:Domain = test.com

# 创建空的本地文件夹并将远程目录挂载到文件夹
root@Ubuntu:~$ mkdir -p ~/nfsdata
root@Ubuntu:~$ mount -t 192.168.17.131:/data ~/nfsdata

# 设置开机自启动
root@Ubuntu:~$ vi /etc/fstab
添加:nfsserver:192.168.17.131:/data ~/nfsdata nfs deaults 0 0

4. Windows10安装NFS服务器:

  1. 在Windows10中打开nfs服务:Win10安装NFS服务

  2. 在Windows上挂载:

C:\Users\root> mount 192.168.17.131:/data X:
  1. 会发现多了一个驱动硬盘X:,就是挂载成功的/data

在这里插入图片描述

四、iSCSI 块存储服务

1. 安装目标器服务器

方法一:

# 配置目标器服务器
# 安装
root@Ubuntu:~$ apt install tgt -y

# 修改目标器服务器配置文件
root@Ubuntu:~$ vi /etc/tgt/conf.d/iscsi.conf
添加:
<target iqn.2022-03.example.com:disk0>
  backing-store /dev/sdb
  initiator-address 192.168.17.132
  incominguser test1 123456
  outgoinguser test2 654321
</target>

# 重启服务并查看
root@Ubuntu:~$ systemctl restart tgt
root@Ubuntu:~$ tgtadm --mode target --op show

方法二:

# 新建一个目录用于存放虚拟磁盘文件
root@Ubuntu:~$ mkdir /var/lib/iscsi_disks
# 下载管理工具
root@Ubuntu:~$ apt install targetcli-fb
root@Ubuntu:~$ targetcli
/> cd /backstores/fileio
# 创建一个名为 disk01 的磁盘镜像文件,位于/var/lib/iscsi_disks/disk01.img,容量为 10G
/backstores/fileio> create disk01 /var/lib/iscsi_disks/disk01.img 10G
/backstores/fileio> cd /iscsi
/iscsi> create iqn.2020-02.cg.lzu.edu.cn:storage.target00
/iscsi> cd iqn.2020-02.cg.lzu.edu.cn:storage.target00
/iscsi/iqn.20...rage.target00> cd tpg1
/iscsi/iqn.20...target00/tpg1> cd acls
/iscsi/iqn.20...t00/tpg1/acls> create iqn.2020-02.cg.lzu.edu.cn
/iscsi/iqn.20...t00/tpg1/acls> cd iqn.2020-02.cg.lzu.edu.cn
/iscsi/iqn.20...cg.lzu.edu.cn> set auth userid=username
/iscsi/iqn.20...cg.lzu.edu.cn> set auth password=password
/iscsi/iqn.20...t00/tpg1/luns> cd /iscsi/iqn.2020-02.cg.lzu.edu.cn:storage.target00/tpg1/luns
/iscsi/iqn.20...t00/tpg1/luns> create /backstores/fileio/disk01
/iscsi/iqn.20...t00/tpg1/luns>cd /
/> ls
/> exit

# 查看3260端口是否在监听
root@Ubuntu:~$ ss -napt | grep 3260

# 启动target服务器
root@Ubuntu:~$ systemctl enable target

2. 在Ubuntu系统中安装启动器服务器

# 配置启动器服务器
# 安装
root@Ubuntu:~$ apt install open-iscsi -y

# 发现目标器服务器的共享目标
root@Ubuntu:~$ iscsiadm -m discovery -t st -p 192.168.17.131

# 修改配置
root@Ubuntu:~$ vi /etc/iscsi/initiatorname.iscsi
修改为刚才发现的共享目标名称:
InitiatorName=iqn.2022-03.example.com:disk0

# 修改节点登录信息
root@Ubuntu:~$ vi /etc/iscsi/nodes/iqn.2022-03.example.com\:disk0/192.168.17.131\,3260\,1/default
添加/修改:
node.startup = automatic
node.session.auth.authmethod = CHAP
node.session.auth.username = test1
node.session.auth.password = 123456
node.session.auth.username_in = test2
node.session.auth.password_in = 654321

# 重启服务器并查看状态
root@Ubuntu:~$ systemctl restart open-iscsi iscsid
root@Ubuntu:~$ systemctl status open-iscsi

# 查看连接
root@Ubuntu:~$ iscsiadm -m session -o show
root@Ubuntu:~$ lsblk
root@Ubuntu:~$ cat /proc/partitions

# 创建文件系统、格式化、挂载
root@Ubuntu:~$ fdisk -l /dev/sdb
root@Ubuntu:~$ mkfs.ext4 /dev/sdb1
root@Ubuntu:~$ mount /dev/sdb1 /mnt
root@Ubuntu:~$ df -kh

参考文章:如何在Ubuntu 20.04 LTS上设置iSCSI存储服务器

五、在Windows10上安装启动器服务器

参考文章:Windows10系统连接iscsi target(共享存储)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jkjgj/article/details/128784430

Ubuntu 设置 IP 地址和 hostname-爱代码爱编程

Ubuntu 设置 IP 地址和 hostname Ubuntu 17.10 以前版本配置 IP 地址查看系统网卡配置配置 /etc/network/interfaces设置静态 IP 地址设置动态 IP 地址重启网络Ubuntu 17.10 以后版本配置 IP 地址查看当前的 IP 地址设置静态 IP 地址设置动态 IP 地址Ubuntu 配置

ubuntu命令安装redis并设置自启动-爱代码爱编程

由于没时间系统学习,只能是用到什么记录什么,有点杂乱 安装redis有两种方式 一.apt安装 本文Ubuntu环境(20.04)安装redis sudo apt-get install -y redis-server 设置密码 sudo vim /etc/redis/redis/redis.conf 修改配置文件里的requirepass,把注释关

ubuntu命令行设置网络代理-爱代码爱编程

ubuntu命令行设置网络代理 图形界面设置命令行设置 图形界面设置 ubuntu16.04 直接设置ip、port即可。 命令行设置 由于实际需要可能会进行频繁的代理设置切换,点击图形界面太麻烦,ubuntu所有的用户设置(图形界面上显示的设置数据,都是基于键值对储存,类似于win下面的注册表) 这里使用gsettings对键值对进

ubuntu20.04设置开机自动挂载-爱代码爱编程

总结: 1.硬盘被lvm拆分后,就算重装系统(未格式化PV盘),系统重装后,硬盘的PE依然存在 2.开机自动挂载可以自动挂载物理盘、LVM等 3.如果LVM硬盘松动,导致LVM读盘失败,可以重启机器,重新挂载LVM(不用格式化),只要不再是物理损伤,数据会依然存在 4.杀掉所有跟该硬盘挂钩的进程(危险,可不操作) # /mnt/ssd1 表示杀掉

Ubuntu 安装mysql & 自定义数据存储目录-爱代码爱编程

Ubuntu 安装mysql & 自定义数据存储目录 详细操作教程 执行命令 apt-get install mysql-server 配置自定义数据存储目录 2.1、关闭数据库 mysqladmin -u root -p shutdown service mysql stop 2.2、迁移默认数据 默认数据是在安装mysql时就部署完

如何在虚拟机上安装ubuntu以及设置分区(详细步骤)_xinglianyuanwai的博客-爱代码爱编程_ubuntu分区设置

步骤1设置空白机器 1.1点击新建虚拟机 1.2选择自定义(经典)点击下一步 1.3选择兼容性点击下一步 1.4安装来源选择稍后安装 1.5选择操作系统:Ubuntu 64位 1.6设置虚拟机名称Ubuntu 64位,设置虚拟机安装位置:E:\VOS\Ubuntu 1.7设置处理器数:1,设置每个处理器

ubuntu虚拟机vmware与主机共享文件夹设置_workholic_365的博客-爱代码爱编程

1 打开vmware,在标题栏中,选择“虚拟机”->“设置",如下图所示: 2 在“选项“中选择“共享文件夹”,如下图所示: 3 选择上图中的“添加“,如下图所示: 4 点击“下一步“,如下图所示: 5 选择“浏览(R)…”,设置共享文件夹在PC主机中的路径(使用英文路径),如下图所示: 6 点击“下一步”,

ubuntu 20.04系统安装及初始配置_cv_today的博客-爱代码爱编程

文章目录 前言一、系统要求二、安装步骤1.下载Ubuntu 20.04镜像2.创建启动盘3.启动计算机并进入 BIOS/UEFI 设置4.进入安装界面(一步步走下去就好)5.完成安装。 三、初始配置1、 启用 r

linux ubuntu中配置nfs共享存储服务_ubuntu配置nfs共享-爱代码爱编程

nfs是共享网络文件存储服务器,在windows上就是共享文件夹的概念;作用:实现多台服务器之间数据共享,实现多台服务器之间数据一致。 1、安装服务工具 sudo apt-get install nfs-kernel-server 2、创建共享目录 mkdir shareDir 3、修改配置文件 sudo vim /etc/exports,在配置

ubuntu分区设置_ubuntu分区大小推荐-爱代码爱编程

ubuntu分区设置 swap区:逻辑分区,虚拟内存类似,大小和电脑内存一样大; /boot区:主分区,引导系统的,分配200M-500M,条件好些分配1G; /.区:主分区,存放系统,类似windows系统C盘 大小根据