dev

[Linux]LVM扩展卷

只谈情不闲聊 提交于 2020-02-24 09:43:51
LVM LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。物理卷(physical volume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。 优势:能够在线扩容当前的分区容量。 结构:在整个LVM结构当中以此分为:“物理卷、物理卷分区、卷组、逻辑卷”,下面我详细解释一下这四种结构: 物理卷:Physical Volume,简称PV,一个物理卷只不过是一个有LVM管理数据添加在里面的物理存储介质。要使用LVM系统,首先对要用于LVM的磁盘进行初始化,初始化的目的就是将磁盘或分区标识为LVM 的物理卷。使用pvcreate 命令可以将一个磁盘标记为 LVM 物理卷。 物理分区:Physical Extents,简称PE,LVM将每个物理卷分别叫做物理分区的可寻址存储单元,存储单元的大小通常为几MB。磁盘的开头部分为LVM元数据,之后从索引为零开始,每个物理分区的索引依次递增一

Linux添加自定义系统调用

Deadly 提交于 2020-02-24 06:56:07
一、 什么是系统调用 在 Linux 的世界里,我们经常会遇到系统调用这一术语,所谓系统调用,就是内核提供的、功能十分强大的一系列的函数。这些系统调用是在内核中实现的,再通过一定的方式把系统调用给用户,一般都通过门 (gate) 陷入 (trap) 实现。系统调用就是用户空间应用程序和内核提供的服务之间的一个接口。由于服务是在内核中提供的,因此无法执行直接调用;相反,您必须使用一个进程来跨越用户空间与内核之间的界限。在特定架构中实现此功能的方法会有所不同。因此,本文将着眼于最通用的架构 —— i386 。 二、 系统调用的作用 系统调用在 Linux 系统中发挥着巨大的作用,如果没有系统调用,那么应用程序就失去了内核的支持。我们在编程时用到的很多函数,如 fork 、 open 等这些函数最终都是在系统调用里实现的,这里我们说到了两个函数,即 fork 和 exit, 这两函数都是 glibc 中的函数,但是如果我们跟踪函数的执行过程,看看 glibc 对 fork 和 exit 函数的实现就可以发现在 glibc 的实现代码里都是采用软中断的方式陷入到内核中再通过系统调用实现函数的功能的。具体过程我们在系统调用的实现过程会详细的讲到。 由此可见,系统调用是用户接口在内核中的实现,如果没有系统调用,用户就不能利用内核。 三、 系统调用的现实及调用过程 详细讲述系统调用的之前也讲一下

Vmware扩展磁盘如何不需重启系统

核能气质少年 提交于 2020-02-24 06:43:15
Vmware扩展磁盘如何不需重启系统 https://www.cnblogs.com/kerrycode/p/4801037.html 在虚拟机Vmware中我们有时候需要添加新的虚拟磁盘或给已有虚拟磁盘扩容(expand),在新增磁盘或磁盘扩容后,Linux系统并不能马上识别到。也就是说你看不到磁盘空间变化(使用fdisk -l查看),这时我们可以通过重启系统(reboot)解决这个问题,但是很多时候,我们并不想在存储扩容时重启系统,因为这样会影响到现有的业务系统。那么为什么新增磁盘或磁盘扩容后,Linux系统识别不到呢?这个是因为连接存储设备的SCSI总线需要重新扫描,才能识别到这些新的存储设备。下面测试一下在添加新的虚拟磁盘或给已有虚拟磁盘扩容如何操作才能不用重启系统 1:Vmware虚拟磁盘扩容 如下所示,Vmware虚拟磁盘扩容后,使用fdisk -l看不到任何变化 [root@localhost ~]# fdisk -l Disk /dev/sda: 171.7 GB, 171798691840 bytes 255 heads, 63 sectors/track, 20886 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System

gulpfile配置文件

微笑、不失礼 提交于 2020-02-24 01:57:30
//新版gulp都是异步 每个任务都要return //gulp可以定义一个默认任务。涉及导出 暴露任务(任务包括两大类 私有和公有) //执行任务两种方式 series串行任务 parallel并行任务 可以嵌入 需要导入 //commonjs dest目标 series串行任务 parallel并行任务 watch 监听事件(这边改,那边就改) // commonjs const path = require(‘path’) //引入path node自带方法 不用安装 const { src, watch, dest, series, parallel } = require(‘gulp’)//解构赋值 把要用的方法解构出来单独使用 安装gulp / npm i gulp const connect = require(‘gulp-connect’)//引入方法 安装gulp-connect / npm i gulp-connect --save-dev /gulp插件运行web服务器 const sass = require(‘gulp-sass’)//引入方法 安装gulp-sass node-sass /npm i gulp-sass node-sass --save-dev /编译sass const webpack = require(‘webpack-stream

MYSQL5上运行多个实例

 ̄綄美尐妖づ 提交于 2020-02-24 01:56:02
date 20131005 参考 http://chenzehe.iteye.com/blog/1266260 官方文档 http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#multiple-servers 5.12. 在同一台机器上运行多个MySQL服务器 http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#mysqld-multi 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 注意:mysqld_multi 是perl写的脚本 需要安装perl mysqld_multi 配置MySQL多实例 工作中吸取的 关闭时候 需要密码 一、配置说明 1、至少下面选项对每个服务器必须不同的 --port=port_num -port控制着TCP/IP连接的端口号 --socket=path --socket控制Unix中的Unix套接字文件路径和在Windows中的命名管道名称。 --pid-file=path 该选项只在Unix中使用。它指出服务器在其中写入进程ID的文件名。 如果你使用下面的日志文件选项,对于每个服务器来说,它们必须是不同的: 如果你使用下面的日志文件选项,对于每个服务器来说

通过/dev/mem操作物理内存

三世轮回 提交于 2020-02-23 17:36:38
  /dev/mem设备可以用来访问物理内存。下面一段应用程序的代码,实现了通过/dev/mem对物理内存空间中SRAM1的访问。 #include <stdio.h> #include <stdint.h> #include <fcntl.h> #include <unistd.h> #include <sys/mman.h> #define SRAM1_ADDR 0x10000000 struct test_data { int32_t val; }; int main(void) { struct test_data *data; int ret = 0; void *base; int fd; fd = open("/dev/mem", O_RDWR | O_SYNC); if (fd == -1) { printf("failed to open /dev/mem!"); return -1; } base = mmap(NULL, sizeof(struct test_data), PROT_READ | PROT_WRITE, MAP_SHARED, fd, SRAM1_ADDR); if (base == MAP_FAILED) { printf("failed to mmap /dev/mem!"); ret = -1; goto err_mmap; } data

RHCS集群通过ISCSI实现共享存储(单点挂载)

会有一股神秘感。 提交于 2020-02-23 15:26:29
一、搭建环境 两台redht6.5的虚拟机。 server1 配置luci集群管理界面,用来配置和管理集群。 server1、server2 集群节点,配置ricci。 server3 配置共享存储,增添一块共享磁盘 二、共享存储搭建步骤(单点挂载) 1.新建一个虚拟机,添加一个虚拟硬盘; [root@rhcs3 ~]# fdisk -l 2.在服务端安装软件 [root@rhcs3 ~]# yum install scsi-* -y 3.在文件里配置共享策略,开启服务,查看 [root@rhcs3 ~]# vim /etc/tgt/targets.conf 38 <target iqn.2020-02.com.example:server.target1> 39 backing-store /dev/vda 40 </target> [root@rhcs3 ~]# /etc/init.d/tgtd start [root@rhcs3 ~]# tgt-admin -s [root@rhcs3 ~]# ps ax 注意:只能有这两个tgtd进程,否则不成功 4.在集群节点端安装iscsi软件,并查看服务端共享出来的存储 [root@rhcs1 ~]# yum install iscsi-* -y [root@rhcs1 ~]# iscsiadm -m discovery -t st

执行 apt-get -f install 提示错误

☆樱花仙子☆ 提交于 2020-02-23 02:59:57
执行 apt-get -f install 提示错误 分类: Linux 2015-01-24 21:26 554人阅读 评论 (0) 收藏 举报 1. 问题: usloft1359:~# rvm install 2.2.0 Searching for binary rubies, this might take some time. No binary rubies available for: debian/6/x86_64/ruby-2.2.0. Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies. /usr/local/rvm/scripts/functions/support: line 360: rvm_debug: command not found Checking requirements for debian. Installing requirements for debian. Updating system... Installing required packages: gawk, libreadline6-dev, libyaml-dev, libsqlite3-dev, sqlite3, libgdbm

Cartographer安装

≯℡__Kan透↙ 提交于 2020-02-22 23:09:47
请注意本文的安装日期2017/12/20,如果距离该时间很遥远,请仅作为参考,毕竟cartographer的代码在不断更新,可能会存在很大的变动。 参考文档: https://google-cartographer.readthedocs.io/en/latest/ https://google-cartographer-ros.readthedocs.io/en/latest/ http://www.cnblogs.com/liangyf0312/p/8028441.html 1. 先装好 wstool 、 rosdep 、ninja 2. 建工作空间 3. 下载cartographer、cartographer_ros、ceres源码。这里也下载了rplidar的代码(略)。 https: / / github.com / ceres - solver / ceres - solver https: / / github.com / googlecartographer / cartographer https: / / github.com / googlecartographer / cartographer_ros yhexie@ubuntu:~$ sudo apt-get install -y python-wstool python-rosdep ninja

Cartographer系列之一——初体验

瘦欲@ 提交于 2020-02-22 23:08:54
个人能力有限,若有错误请批评指正! 转载请标明出处:http://www.cnblogs.com/wenhust/ Cartographer简介 Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations. This project provides Cartographer's ROS integration. Cartographer是google开源的通用2D和3D定位与地图同步构建的SLAM工具,并提供ROS接口。 官网地址: https://github.com/googlecartographer 安装说明 官网提供了基于Ubuntu14.04(Trusty)和ROS(indigo)的安装和测试说明,有博客写道在Ubuntu16.04(Xenial)和ROS(Kinetic)上安装和测试成功,该博客也有Cartographer的介绍和安装流程: http://blog.csdn.net/zhangrelay/article/details/52757573 以下安装流程主要参考hitcm(张明明