分类 技术 下的文章

提问: 我使用的是一台运行MariaDB的VPS。我该如何检查MariaDB服务端的版本?

有时候你需要知道你的数据库版本,比如当你升级你数据库或对已知缺陷打补丁时。这里有几种方法找出MariaDB版本的方法。

方法一

第一种找出版本的方法是登录MariaDB服务器,登录之后,你会看到一些MariaDB的版本信息。

另一种方法是在登录MariaDB后出现的命令行中输入‘status’命令。输出会显示服务器的版本还有协议版本。

方法二

如果你不能访问MariaDB服务器,那么你就不能用第一种方法。这种情况下你可以根据MariaDB的安装包的版本来推测。这种方法只有在MariaDB通过包管理器安装的才有用。

你可以用下面的方法检查MariaDB的安装包。

Debian、Ubuntu或者Linux Mint:

$ dpkg -l | grep mariadb

下面的输出说明MariaDB的版本是10.0.17。

Fedora、CentOS或者 RHEL:

$ rpm -qa | grep mariadb

下面的输出说明安装的版本是5.5.41。


via: http://ask.xmodulo.com/check-mariadb-server-version.html

作者:Dan Nanni 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

如何使用dd命令测试我的硬盘性能?如何在linux操作系统下检测硬盘的读写速度?

你可以使用以下命令在一个Linux或类Unix操作系统上进行简单的I/O性能测试。

  • dd命令 :它被用来在Linux和类Unix系统下对硬盘设备进行写性能的检测。
  • hparm命令:它用来在基于 Linux 的系统上获取或设置硬盘参数,包括测试读性能以及缓存性能等。

在这篇指南中,你将会学到如何使用dd命令来测试硬盘性能。

使用dd命令来监控硬盘的读写性能:

  • 打开shell终端。
  • 或者通过ssh登录到远程服务器。
  • 使用dd命令来测量服务器的吞吐率(写速度) dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
  • 使用dd命令测量服务器延迟 dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync

理解dd命令的选项

在这个例子当中,我将使用搭载Ubuntu Linux 14.04 LTS系统的RAID-10(配有SAS SSD的Adaptec 5405Z)服务器阵列来运行。基本语法为:

dd if=/dev/input.file  of=/path/to/output.file  bs=block-size  count=number-of-blocks  oflag=dsync
## GNU dd语法 ##
dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
##另外一种GNU dd的语法 ##
dd if=/dev/zero of=/tmp/testALT.img bs=1G count=1 conv=fdatasync

输出样例:

Fig.01: Ubuntu Linux Server with RAID10 and testing server throughput with dd

图01: 使用dd命令获取的服务器吞吐率

请各位注意在这个实验中,我们写入一个G的数据,可以发现,服务器的吞吐率是135 MB/s,这其中

  • if=/dev/zero (if=/dev/input.file) :用来设置dd命令读取的输入文件名。
  • of=/tmp/test1.img (of=/path/to/output.file):dd命令将input.file写入的输出文件的名字。
  • bs=1G (bs=block-size) :设置dd命令读取的块的大小。例子中为1个G。
  • count=1 (count=number-of-blocks):dd命令读取的块的个数。
  • oflag=dsync (oflag=dsync) :使用同步I/O。不要省略这个选项。这个选项能够帮助你去除caching的影响,以便呈现给你精准的结果。
  • conv=fdatasyn: 这个选项和oflag=dsync含义一样。

在下面这个例子中,一共写了1000次,每次写入512字节来获得RAID10服务器的延迟时间:

dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync

输出样例:

1000+0 records in
1000+0 records out
512000 bytes (512 kB) copied, 0.60362 s, 848 kB/s

请注意服务器的吞吐率以及延迟时间也取决于服务器/应用的负载。所以我推荐你在一个刚刚重启过并且处于峰值时间的服务器上来运行测试,以便得到更加准确的度量。现在你可以在你的所有设备上互相比较这些测试结果了。

为什么服务器的吞吐率和延迟时间都这么差?

低的数值并不意味着你在使用差劲的硬件。可能是硬件 RAID10的控制器缓存导致的。

使用hdparm命令来查看硬盘缓存的读速度。

我建议你运行下面的命令2-3次来对设备读性能进行检测,以作为参照和相互比较:

### 有缓存的硬盘读性能测试——/dev/sda ###
hdparm -t /dev/sda1
## 或者 ##
hdparm -t /dev/sda

然后运行下面这个命令2-3次来对缓存的读性能进行对照性检测:

## Cache读基准——/dev/sda ###
hdparm -T /dev/sda1
## 或者 ##
hdparm -T /dev/sda

或者干脆把两个测试结合起来:

hdparm -Tt /dev/sda

输出样例:

Fig.02: Linux hdparm command to test reading and caching disk performance

图02: 检测硬盘读入以及缓存性能的Linux hdparm命令

请再次注意,由于文件文件操作的缓存属性,你将总是会看到很高的读速度。

使用dd命令来测试读取速度

为了获得精确的读测试数据,首先在测试前运行下列命令,来将缓存设置为无效:

flush
echo 3 | sudo tee /proc/sys/vm/drop_caches
time time dd if=/path/to/bigfile of=/dev/null bs=8k

笔记本上的示例

运行下列命令:

### 带有Cache的Debian系统笔记本吞吐率###
dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct

###使cache失效###
hdparm -W0 /dev/sda

###没有Cache的Debian系统笔记本吞吐率###
dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct

苹果OS X Unix(Macbook pro)的例子

GNU dd has many more options but OS X/BSD and Unix-like dd command need to run as follows to test real disk I/O and not memory add sync option as follows:

GNU dd命令有其他许多选项,但是在 OS X/BSD 以及类Unix中, dd命令需要像下面那样执行来检测去除掉内存地址同步的硬盘真实I/O性能:

## 运行这个命令2-3次来获得更好地结果 ###
time sh -c "dd if=/dev/zero of=/tmp/testfile bs=100k count=1k && sync"

输出样例:

1024+0 records in
1024+0 records out
104857600 bytes transferred in 0.165040 secs (635346520 bytes/sec)

real    0m0.241s
user    0m0.004s
sys 0m0.113s

本人Macbook Pro的写速度是635346520字节(635.347MB/s)。

不喜欢用命令行?

你可以在Linux或基于Unix的系统上使用disk utility(gnome-disk-utility)这款工具来得到同样的信息。下面的那个图就是在我的Fedora Linux v22 VM上截取的。

图形化方法

点击“Activites”或者“Super”按键来在桌面和Activites视图间切换。输入“Disks”

Fig.03: Start the Gnome disk utility

图03: 打开Gnome硬盘工具

在左边的面板上选择你的硬盘,点击configure按钮,然后点击“Benchmark partition”:

Fig.04: Benchmark disk/partition

图04: 评测硬盘/分区

最后,点击“Start Benchmark...”按钮(你可能需要输入管理员用户名和密码):

Fig.05: Final benchmark result

图05: 最终的评测结果

如果你要问,我推荐使用哪种命令和方法?

  • 我推荐在所有的类Unix系统上使用dd命令(time sh -c "dd if=/dev/zero of=/tmp/testfile bs=100k count=1k && sync
  • 如果你在使用GNU/Linux,使用dd命令 (dd if=/dev/zero of=/tmp/testALT.img bs=1G count=1 conv=fdatasync)
  • 确保你每次使用时,都调整了count以及bs参数以获得更好的结果。
  • GUI方法只适合桌面系统为Gnome2或Gnome3的Linux/Unix笔记本用户。

via: http://www.cyberciti.biz/faq/howto-linux-unix-test-disk-performance-with-dd-command/

作者:Vivek Gite 译者:DongShuaike 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

介绍

Kali Linux 是一个对于安全测试人员和白帽的一个知名操作系统。它带有大量安全相关的程序,这让它很容易用于渗透测试。最近,Kali Linux 2.0 发布了,它被认为是这个操作系统最重要的一次发布。另一方面,Docker 技术由于它的可扩展性和易用性让它变得很流行。Dokcer 让你非常容易地将你的程序带给你的用户。好消息是你可以通过 Docker 运行Kali Linux 了,让我们看看该怎么做 :)

在 Docker 中运行 Kali Linux 2.0

相关提示

如果你还没有在系统中安装docker,你可以运行下面的命令:

对于 Ubuntu/Linux Mint/Debian:

sudo apt-get install docker 

对于 Fedora/RHEL/CentOS:

sudo yum install docker 

对于 Fedora 22:

dnf install docker 

你可以运行下面的命令来启动docker:

sudo docker start 

首先运行下面的命令确保 Docker 服务运行正常:

sudo docker status 

Kali Linux 的开发团队已将 Kali Linux 的 docker 镜像上传了,只需要输入下面的命令来下载镜像。

docker pull kalilinux/kali-linux-docker 

Pull Kali Linux docker

下载完成后,运行下面的命令来找出你下载的 docker 镜像的 ID。

docker images 

Kali Linux Image ID

现在运行下面的命令来从镜像文件启动 kali linux docker 容器(这里需用正确的镜像ID替换)。

docker run -i -t 198cd6df71ab3 /bin/bash 

它会立刻启动容器并且让你登录到该操作系统,你现在可以在 Kaili Linux 中工作了。

Kali Linux Login

你可以在容器外面通过下面的命令来验证容器已经启动/运行中了:

docker ps 

Docker Kali

总结

Docker 是一种最聪明的用来部署和分发包的方式。Kali Linux docker 镜像非常容易上手,也不会消耗很大的硬盘空间,这样也可以很容易地在任何安装了 docker 的操作系统上测试这个很棒的发行版了。


via: http://linuxpitstop.com/run-kali-linux-2-0-in-docker-container/

作者:Aun 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在 RAID 5 中,数据条带化后存储在分布式奇偶校验的多个磁盘上。分布式奇偶校验的条带化意味着它将奇偶校验信息和条带化数据分布在多个磁盘上,这样会有很好的数据冗余。

Setup Raid 5 in CentOS

在 Linux 中配置 RAID 5

对于此 RAID 级别它至少应该有三个或更多个磁盘。RAID 5 通常被用于大规模生产环境中,以花费更多的成本来提供更好的数据冗余性能。

什么是奇偶校验?

奇偶校验是在数据存储中检测错误最简单的常见方式。奇偶校验信息存储在每个磁盘中,比如说,我们有4个磁盘,其中相当于一个磁盘大小的空间被分割去存储所有磁盘的奇偶校验信息。如果任何一个磁盘出现故障,我们可以通过更换故障磁盘后,从奇偶校验信息重建得到原来的数据。

RAID 5 的优点和缺点

  • 提供更好的性能。
  • 支持冗余和容错。
  • 支持热备份。
  • 将用掉一个磁盘的容量存储奇偶校验信息。
  • 单个磁盘发生故障后不会丢失数据。我们可以更换故障硬盘后从奇偶校验信息中重建数据。
  • 适合于面向事务处理的环境,读操作会更快。
  • 由于奇偶校验占用资源,写操作会慢一些。
  • 重建需要很长的时间。

要求

创建 RAID 5 最少需要3个磁盘,你也可以添加更多的磁盘,前提是你要有多端口的专用硬件 RAID 控制器。在这里,我们使用“mdadm”包来创建软件 RAID。

mdadm 是一个允许我们在 Linux 下配置和管理 RAID 设备的包。默认情况下没有 RAID 的配置文件,我们在创建和配置 RAID 后必须将配置文件保存在一个单独的文件 mdadm.conf 中。

在进一步学习之前,我建议你通过下面的文章去了解 Linux 中 RAID 的基础知识。

我的服务器设置

操作系统 :  CentOS 6.5 Final
IP 地址  :    192.168.0.227
主机名    :  rd5.tecmintlocal.com
磁盘 1 [20GB]  :  /dev/sdb
磁盘 2 [20GB]  :  /dev/sdc
磁盘 3 [20GB]  :  /dev/sdd

这是9篇系列教程的第4部分,在这里我们要在 Linux 系统或服务器上使用三个20GB(名为/dev/sdb, /dev/sdc 和 /dev/sdd)的磁盘建立带有分布式奇偶校验的软件 RAID 5。

第1步:安装 mdadm 并检验磁盘

1、 正如我们前面所说,我们使用 CentOS 6.5 Final 版本来创建 RAID 设置,但同样的做法也适用于其他 Linux 发行版。

# lsb_release -a
# ifconfig | grep inet

Setup Raid 5 in CentOS

CentOS 6.5 摘要

2、 如果你按照我们的 RAID 系列去配置的,我们假设你已经安装了“mdadm”包,如果没有,根据你的 Linux 发行版使用下面的命令安装。

# yum install mdadm     [在 RedHat 系统]
# apt-get install mdadm     [在 Debain 系统]

3、 “mdadm”包安装后,先使用fdisk命令列出我们在系统上增加的三个20GB的硬盘。

# fdisk -l | grep sd

Install mdadm Tool in CentOS

安装 mdadm 工具

4、 现在该检查这三个磁盘是否存在 RAID 块,使用下面的命令来检查。

# mdadm -E /dev/sd[b-d]
# mdadm --examine /dev/sdb /dev/sdc /dev/sdd # 或

Examine Drives For Raid

检查 Raid 磁盘

注意: 上面的图片说明,没有检测到任何超级块。所以,这三个磁盘中没有定义 RAID。让我们现在开始创建一个吧!

第2步:为磁盘创建 RAID 分区

5、 首先,在创建 RAID 前磁盘(/dev/sdb, /dev/sdc 和 /dev/sdd)必须有分区,因此,在进行下一步之前,先使用fdisk命令进行分区。

# fdisk /dev/sdb
# fdisk /dev/sdc
# fdisk /dev/sdd

创建 /dev/sdb 分区

请按照下面的说明在 /dev/sdb 硬盘上创建分区。

  • n 创建新的分区。
  • 然后按 P 选择主分区。选择主分区是因为还没有定义过分区。
  • 接下来选择分区号为1。默认就是1。
  • 这里是选择柱面大小,我们没必要选择指定的大小,因为我们需要为 RAID 使用整个分区,所以只需按两次 Enter 键默认将整个容量分配给它。
  • 然后,按 P 来打印创建好的分区。
  • 改变分区类型,按 L可以列出所有可用的类型。
  • t 修改分区类型。
  • 这里使用fd设置为 RAID 的类型。
  • 然后再次使用p查看我们所做的更改。
  • 使用w保存更改。

Create sdb Partition

创建 sdb 分区

注意: 我们仍要按照上面的步骤来创建 sdc 和 sdd 的分区。

创建 /dev/sdc 分区

现在,通过下面的截图给出创建 sdc 和 sdd 磁盘分区的方法,或者你可以按照上面的步骤。

# fdisk /dev/sdc

Create sdc Partition

创建 sdc 分区

创建 /dev/sdd 分区

# fdisk /dev/sdd

Create sdd Partition

创建 sdd 分区

6、 创建分区后,检查三个磁盘 sdb, sdc, sdd 的变化。

# mdadm --examine /dev/sdb /dev/sdc /dev/sdd
# mdadm -E /dev/sd[b-c]  # 或

Check Partition Changes

检查磁盘变化

注意: 在上面的图片中,磁盘的类型是 fd。

7、 现在在新创建的分区检查 RAID 块。如果没有检测到超级块,我们就能够继续下一步,在这些磁盘中创建一个新的 RAID 5 配置。

Check Raid on Partition

*在分区中检查 RAID *

第3步:创建 md 设备 md0

8、 现在使用所有新创建的分区(sdb1, sdc1 和 sdd1)创建一个 RAID 设备“md0”(即 /dev/md0),使用以下命令。

# mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
# mdadm -C /dev/md0 -l=5 -n=3 /dev/sd[b-d]1   # 或

9、 创建 RAID 设备后,检查并确认 RAID,从 mdstat 中输出中可以看到包括的设备的 RAID 级别。

# cat /proc/mdstat

Verify Raid Device

验证 Raid 设备

如果你想监视当前的创建过程,你可以使用watch命令,将 cat /proc/mdstat 传递给它,它会在屏幕上显示且每隔1秒刷新一次。

# watch -n1 cat /proc/mdstat

Monitor Raid Process

监控 RAID 5 构建过程

Raid 5 Process Summary

Raid 5 过程概要

10、 创建 RAID 后,使用以下命令验证 RAID 设备

# mdadm -E /dev/sd[b-d]1

Verify Raid Level

验证 Raid 级别

注意: 因为它显示三个磁盘的信息,上述命令的输出会有点长。

11、 接下来,验证 RAID 阵列,假定包含 RAID 的设备正在运行并已经开始了重新同步。

# mdadm --detail /dev/md0

Verify Raid Array

验证 RAID 阵列

第4步:为 md0 创建文件系统

12、 在挂载前为“md0”设备创建 ext4 文件系统。

# mkfs.ext4 /dev/md0

Create md0 Filesystem

创建 md0 文件系统

13、 现在,在/mnt下创建目录 raid5,然后挂载文件系统到 /mnt/raid5/ 下,并检查挂载点下的文件,你会看到 lost+found 目录。

# mkdir /mnt/raid5
# mount /dev/md0 /mnt/raid5/
# ls -l /mnt/raid5/

14、 在挂载点 /mnt/raid5 下创建几个文件,并在其中一个文件中添加一些内容然后去验证。

# touch /mnt/raid5/raid5_tecmint_{1..5}
# ls -l /mnt/raid5/
# echo "tecmint raid setups" > /mnt/raid5/raid5_tecmint_1
# cat /mnt/raid5/raid5_tecmint_1
# cat /proc/mdstat

Mount Raid 5 Device

挂载 RAID 设备

15、 我们需要在 fstab 中添加条目,否则系统重启后将不会显示我们的挂载点。编辑 fstab 文件添加条目,在文件尾追加以下行。挂载点会根据你环境的不同而不同。

# vim /etc/fstab

/dev/md0                /mnt/raid5              ext4    defaults        0 0

Raid 5 Automount

自动挂载 RAID 5

16、 接下来,运行mount -av命令检查 fstab 条目中是否有错误。

# mount -av

Check Fstab Errors

检查 Fstab 错误

第5步:保存 Raid 5 的配置

17、 在前面章节已经说过,默认情况下 RAID 没有配置文件。我们必须手动保存。如果此步中没有跟随不属于 md0 的 RAID 设备,它会是一些其他随机数字。

所以,我们必须要在系统重新启动之前保存配置。如果配置保存它在系统重新启动时会被加载到内核中然后 RAID 也将被加载。

# mdadm --detail --scan --verbose >> /etc/mdadm.conf

Save Raid 5 Configuration

保存 RAID 5 配置

注意:保存配置将保持 md0 设备的 RAID 级别稳定不变。

第6步:添加备用磁盘

18、 备用磁盘有什么用?它是非常有用的,如果我们有一个备用磁盘,当我们阵列中的任何一个磁盘发生故障后,这个备用磁盘会进入激活重建过程,并从其他磁盘上同步数据,这样就有了冗余。

更多关于添加备用磁盘和检查 RAID 5 容错的指令,请阅读下面文章中的第6步和第7步。

结论

在这篇文章中,我们已经看到了如何使用三个磁盘配置一个 RAID 5 。在接下来的文章中,我们将看到如何故障排除并且当 RAID 5 中的一个磁盘损坏后如何恢复。


via: http://www.tecmint.com/create-raid-5-in-linux/

作者:Babin Lonston 译者:strugglingyouth 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

RAID 镜像意味着相同数据的完整克隆(或镜像),分别写入到两个磁盘中。创建 RAID 1 至少需要两个磁盘,而且仅用于读取性能或者可靠性要比数据存储容量更重要的场合。

Create Raid1 in Linux

在 Linux 中设置 RAID 1

创建镜像是为了防止因硬盘故障导致数据丢失。镜像中的每个磁盘包含数据的完整副本。当一个磁盘发生故障时,相同的数据可以从其它正常磁盘中读取。而后,可以从正在运行的计算机中直接更换发生故障的磁盘,无需任何中断。

RAID 1 的特点

  • 镜像具有良好的性能。
  • 磁盘利用率为50%。也就是说,如果我们有两个磁盘每个500GB,总共是1TB,但在镜像中它只会显示500GB。
  • 在镜像如果一个磁盘发生故障不会有数据丢失,因为两个磁盘中的内容相同。
  • 读取性能会比写入性能更好。

要求

创建 RAID 1 至少要有两个磁盘,你也可以添加更多的磁盘,磁盘数需为2,4,6,8等偶数。要添加更多的磁盘,你的系统必须有 RAID 物理适配器(硬件卡)。

这里,我们使用软件 RAID 不是硬件 RAID,如果你的系统有一个内置的物理硬件 RAID 卡,你可以从它的功能界面或使用 Ctrl + I 键来访问它。

需要阅读: 介绍 RAID 的级别和概念

在我的服务器安装

操作系统 :  CentOS 6.5 Final
IP 地址    :  192.168.0.226
主机名    :  rd1.tecmintlocal.com
磁盘 1 [20GB]  :  /dev/sdb
磁盘 2 [20GB]  :  /dev/sdc

本文将指导你在 Linux 平台上使用 mdadm (用于创建和管理 RAID )一步步的建立一个软件 RAID 1 (镜像)。同样的做法也适用于如 RedHat,CentOS,Fedora 等 Linux 发行版。

第1步:安装所需软件并且检查磁盘

1、 正如我前面所说,在 Linux 中我们需要使用 mdadm 软件来创建和管理 RAID。所以,让我们用 yum 或 apt-get 的软件包管理工具在 Linux 上安装 mdadm 软件包。

# yum install mdadm     [在 RedHat 系统]
# apt-get install mdadm     [在 Debain 系统]

2、 一旦安装好mdadm包,我们需要使用下面的命令来检查磁盘是否已经配置好。

# mdadm -E /dev/sd[b-c]

Check RAID on Disks

检查 RAID 的磁盘

正如你从上面图片看到的,没有检测到任何超级块,这意味着还没有创建RAID。

第2步:为 RAID 创建分区

3、 正如我提到的,我们使用最少的两个分区 /dev/sdb 和 /dev/sdc 来创建 RAID 1。我们首先使用fdisk命令来创建这两个分区并更改其类型为 raid。

# fdisk /dev/sdb

按照下面的说明

  • n 创建新的分区。
  • 然后按 P 选择主分区。
  • 接下来选择分区号为1。
  • 按两次回车键默认将整个容量分配给它。
  • 然后,按 P 来打印创建好的分区。
  • L,列出所有可用的类型。
  • t 修改分区类型。
  • 键入 fd 设置为 Linux 的 RAID 类型,然后按 Enter 确认。
  • 然后再次使用p查看我们所做的更改。
  • 使用w保存更改。

Create Disk Partitions

创建磁盘分区

在创建“/dev/sdb”分区后,接下来按照同样的方法创建分区 /dev/sdc 。

# fdisk /dev/sdc

Create Second Partitions

创建第二个分区

4、 一旦这两个分区创建成功后,使用相同的命令来检查 sdb 和 sdc 分区并确认 RAID 分区的类型如上图所示。

# mdadm -E /dev/sd[b-c]

Verify Partitions Changes

验证分区变化

Check RAID Type

检查 RAID 类型

注意: 正如你在上图所看到的,在 sdb1 和 sdc1 中没有任何对 RAID 的定义,这就是我们没有检测到超级块的原因。

第3步:创建 RAID 1 设备

5、 接下来使用以下命令来创建一个名为 /dev/md0 的“RAID 1”设备并验证它

# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[b-c]1
# cat /proc/mdstat

Create RAID Device

创建RAID设备

6、 接下来使用如下命令来检查 RAID 设备类型和 RAID 阵列

# mdadm -E /dev/sd[b-c]1
# mdadm --detail /dev/md0

Check RAID Device type

检查 RAID 设备类型

Check RAID Device Array

检查 RAID 设备阵列

从上图中,人们很容易理解,RAID 1 已经创建好了,使用了 /dev/sdb1 和 /dev/sdc1 分区,你也可以看到状态为 resyncing(重新同步中)。

第4步:在 RAID 设备上创建文件系统

7、 给 md0 上创建 ext4 文件系统

# mkfs.ext4 /dev/md0

Create RAID Device Filesystem

创建 RAID 设备文件系统

8、 接下来,挂载新创建的文件系统到“/mnt/raid1”,并创建一些文件,验证在挂载点的数据

# mkdir /mnt/raid1
# mount /dev/md0 /mnt/raid1/
# touch /mnt/raid1/tecmint.txt
# echo "tecmint raid setups" > /mnt/raid1/tecmint.txt

Mount Raid Device

挂载 RAID 设备

9、为了在系统重新启动自动挂载 RAID 1,需要在 fstab 文件中添加条目。打开/etc/fstab文件并添加以下行:

/dev/md0                /mnt/raid1              ext4    defaults        0 0

Raid Automount Device

自动挂载 Raid 设备

10、 运行mount -av,检查 fstab 中的条目是否有错误

# mount -av

Check Errors in fstab

检查 fstab 中的错误

11、 接下来,使用下面的命令保存 RAID 的配置到文件“mdadm.conf”中。

# mdadm --detail --scan --verbose >> /etc/mdadm.conf

Save Raid Configuration

保存 Raid 的配置

上述配置文件在系统重启时会读取并加载 RAID 设备。

第5步:在磁盘故障后检查数据

12、我们的主要目的是,即使在任何磁盘故障或死机时必须保证数据是可用的。让我们来看看,当任何一个磁盘不可用时会发生什么。

# mdadm --detail /dev/md0

Raid Device Verify

验证 RAID 设备

在上面的图片中,我们可以看到在 RAID 中有2个设备是可用的,并且 Active Devices 是2。现在让我们看看,当一个磁盘拔出(移除 sdc 磁盘)或损坏后会发生什么。

# ls -l /dev | grep sd
# mdadm --detail /dev/md0

Test RAID Devices

测试 RAID 设备

现在,在上面的图片中你可以看到,一个磁盘不见了。我从虚拟机上删除了一个磁盘。此时让我们来检查我们宝贵的数据。

# cd /mnt/raid1/
# cat tecmint.txt

Verify RAID Data

验证 RAID 数据

你可以看到我们的数据仍然可用。由此,我们可以了解 RAID 1(镜像)的优势。在接下来的文章中,我们将看到如何设置一个 RAID 5 条带化分布式奇偶校验。希望这可以帮助你了解 RAID 1(镜像)是如何工作的。


via: http://www.tecmint.com/create-raid1-in-linux/

作者:Babin Lonston 译者:strugglingyouth 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

如果你已经阅读了前面的如何监控 NGINX,你应该知道从你网络环境的几个指标中可以获取多少信息。而且你也看到了从 NGINX 特定的基础中收集指标是多么容易的。但要实现全面,持续的监控 NGINX,你需要一个强大的监控系统来存储并将指标可视化,当异常发生时能提醒你。在这篇文章中,我们将向你展示如何使用 Datadog 安装 NGINX 监控,以便你可以在定制的仪表盘中查看这些指标:

NGINX dashboard

Datadog 允许你以单个主机、服务、流程和度量来构建图形和警告,或者使用它们的几乎任何组合构建。例如,你可以监控你的所有主机,或者某个特定可用区域的所有NGINX主机,或者您可以监视具有特定标签的所有主机的一个关键指标。本文将告诉您如何:

  • 在 Datadog 仪表盘上监控 NGINX 指标,就像监控其他系统一样
  • 当一个关键指标急剧变化时设置自动警报来通知你

配置 NGINX

为了收集 NGINX 指标,首先需要确保 NGINX 已启用 status 模块和一个 报告 status 指标的 URL。一步步的配置开源 NGINXNGINX Plus 请参见之前的相关文章。

整合 Datadog 和 NGINX

安装 Datadog 代理

Datadog 代理是一个开源软件,它能收集和报告你主机的指标,这样就可以使用 Datadog 查看和监控他们。安装这个代理通常仅需要一个命令

只要你的代理启动并运行着,你会看到你主机的指标报告在你 Datadog 账号下

Datadog infrastructure list

配置 Agent

接下来,你需要为代理创建一个简单的 NGINX 配置文件。在你系统中代理的配置目录应该在这儿找到。

在目录里面的 conf.d/nginx.yaml.example 中,你会发现一个简单的配置文件,你可以编辑并提供 status URL 和可选的标签为每个NGINX 实例:

init_config:

instances:

    -   nginx_status_url: http://localhost/nginx_status/
        tags:
            -   instance:foo

当你提供了 status URL 和任意 tag,将配置文件保存为 conf.d/nginx.yaml。

重启代理

你必须重新启动代理程序来加载新的配置文件。重新启动命令在这里,根据平台的不同而不同。

检查配置文件

要检查 Datadog 和 NGINX 是否正确整合,运行 Datadog 的 info 命令。每个平台使用的命令看这儿

如果配置是正确的,你会看到这样的输出:

Checks
======

  [...]

  nginx
  -----
      - instance #0 [OK]
      - Collected 8 metrics & 0 events 

安装整合

最后,在你的 Datadog 帐户打开“Nginx 整合”。这非常简单,你只要在 NGINX 整合设置中点击“Install Integration”按钮。

Install integration

指标!

一旦代理开始报告 NGINX 指标,你会看到一个 NGINX 仪表盘出现在在你 Datadog 可用仪表盘的列表中。

基本的 NGINX 仪表盘显示有用的图表,囊括了几个我们的 NGINX 监控介绍中的关键指标。 (一些指标,特别是请求处理时间要求进行日志分析,Datadog 不支持。)

你可以通过增加 NGINX 之外的重要指标的图表来轻松创建一个全面的仪表盘,以监控你的整个网站设施。例如,你可能想监视你 NGINX 的主机级的指标,如系统负载。要构建一个自定义的仪表盘,只需点击靠近仪表盘的右上角的选项并选择“Clone Dash”来克隆一个默认的 NGINX 仪表盘。

Clone dash

你也可以使用 Datadog 的主机地图在更高层面监控你的 NGINX 实例,举个例子,用颜色标示你所有的 NGINX 主机的 CPU 使用率来辨别潜在热点。

NGINX 指标警告

一旦 Datadog 捕获并可视化你的指标,你可能会希望建立一些监控自动地密切关注你的指标,并当有问题提醒你。下面将介绍一个典型的例子:一个提醒你 NGINX 吞吐量突然下降时的指标监控器。

监控 NGINX 吞吐量

Datadog 指标警报可以是“基于吞吐量的”(当指标超过设定值会警报)或“基于变化幅度的”(当指标的变化超过一定范围会警报)。在这个例子里,我们会采取后一种方式,当每秒传入的请求急剧下降时会提醒我们。下降往往意味着有问题。

  1. 创建一个新的指标监控。从 Datadog 的“Monitors”下拉列表中选择“New Monitor”。选择“Metric”作为监视器类型。

NGINX metric monitor

  1. 定义你的指标监视器。我们想知道 NGINX 每秒总的请求量下降的数量,所以我们在基础设施中定义我们感兴趣的 nginx.net.requestpers 之和。

NGINX metric

  1. 设置指标警报条件。我们想要在变化时警报,而不是一个固定的值,所以我们选择“Change Alert”。我们设置监控为无论何时请求量下降了30%以上时警报。在这里,我们使用一个一分钟的数据窗口来表示 “now” 指标的值,对横跨该间隔内的平均变化和之前 10 分钟的指标值作比较。

NGINX metric change alert

  1. 自定义通知。如果 NGINX 的请求量下降,我们想要通知我们的团队。在这个例子中,我们将给 ops 团队的聊天室发送通知,并给值班工程师发送短信。在“Say what’s happening”中,我们会为监控器命名,并添加一个伴随该通知的短消息,建议首先开始调查的内容。我们会 @ ops 团队使用的 Slack,并 @pagerduty 将警告发给短信

NGINX metric notification

  1. 保存集成监控。点击页面底部的“Save”按钮。你现在在监控一个关键的 NGINX 工作指标,而当它快速下跌时会给值班工程师发短信。

结论

在这篇文章中,我们谈到了通过整合 NGINX 与 Datadog 来可视化你的关键指标,并当你的网络基础架构有问题时会通知你的团队。

如果你一直使用你自己的 Datadog 账号,你现在应该可以极大的提升你的 web 环境的可视化,也有能力对你的环境、你所使用的模式、和对你的组织最有价值的指标创建自动监控。

如果你还没有 Datadog 帐户,你可以注册免费试用,并开始监视你的基础架构,应用程序和现在的服务。


via: https://www.datadoghq.com/blog/how-to-monitor-nginx-with-datadog/

作者:K Young 译者:strugglingyouth 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出