linux lzo Linux怎么学

大家好,今天来为大家解答linux lzo这个问题的一些问题点,包括Linux怎么学也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

Linux配置vim不生效的符号是什么linux配置vim

linux软件配置文件常见格式?

linux下的配置文件为文本文件,就像win下的txt文件,,最常用的编辑工具就vim和emacs了;所有的配置文件都有自己的格式,不是随便可以改动的,当安装系统或软件的时候会自动在/etc下给你生成一个常用的配置文件,里面的参数是常用的,如果想看完整的参数可以用man或在/usr下找,当然,大多数的配置文件都有相同的地方,比如由#开头的是解释性语句等等。

linux里面vim怎么编辑文件?

先在Vim的“一般模式”里将光标移动到需要修改的地方(进“一般模式”只需要按下键盘上的Esc键即可),移动光标可以用“一般模式”下的几个命令来完成,比如输入50G表示跳到第50行,数字20加向下移动光标的按键则表示从当前光标位置向下再移动20行。

光标移动到需要修改的位置后,按下键盘上的i键就可以进行编辑了,还可以按下O键,表示在光标所在行下面新添加一行进行编辑。编辑完成后需要再次按下键盘上的Esc键到“一般模式”,才可以执行保存文件的命令。保存退出Vim一般是:wq命令,注意要先输入英文冒号(是英文冒号哦,如果错误的输成中文是没有反应的)。

vim?在linux下中如何设置显示行数?

在linux环境下的编辑器有vi、vim、gedit等等。进入这些编辑器之后,为了方便我们需要编辑器显示出当前的行号,可偏偏编辑器默认是不会显示行号的。我们有二种办法可以解决:

第一种是,手动显示:在vim命令行模式下输入:setnu

取消显示:在vim命令行模式下输入:setnonu

第二种是,永久自动显示:我们修改一个配置文件。

我们输入命令:vim~/.vimrc

打开后是一个空文件,我们添加setnu,保存退出,再次进入vim编辑器,就会自动显示出行号了。如此简单

centos如何配置kvm?

一、服务器配置过程说明

首先需要现在服务器上找一个节点装windowserver,然后开始配置存储阵列为RAID5;然后创建Proxmox集群以及KVM(也就是虚拟节点),在每个节点上安装centos系统并下载Teamviewer;最后简单讲讲Proxmox中节点备份与恢复。

二、配置RAID:

1)基本概念:

其实首先要知道RAID是什么,它相当于是一个存储模式,其实就是平常说起来很高大上的存储阵列,是在windowserver上面做的,也就是机房的服务器。一般机房默认是RAID0,其实基本没什么改变,就是该有几块硬盘就用几块,不需要做额外的设置;但是这样一来缺点也很明显,因为一旦坏了那就只能自己和自己去哭了,没有备份或者恢复机制。所以现在一般都做RAID5,就是相当于会腾出一块硬盘来做恢复与备份,用空间来换取整个集群的安全,还是很划算的。步骤如下:

2)操作流程:

按照顺序傻瓜操作向后点:硬件配置,配置向导——第一步,下一步——第1a步,清除外部配置,下一步——第2步,RAID0,下一步(这是为了清除最开始的时候默认RAID0配置)——第3步,协议:SAS,介质类型:HDD,加密功能:非加密,将磁盘全部选中,下一步——第4步,自动生成的参数,我的是:6517.00,1MB,自适应预读;回写,下一步——第5步,此步中要注意所有的物理磁盘都显示出来了,否则就要返回关机重配,完成——成功!

三、开始创建Proxmox集群

1)基本概念:

这一步是为了能在上一步的基础上(windowserver操作系统和RAID5的存储阵列)进一步安装集群,在集群上分配节点,然后每个节点都可以分别分给不同的人来操作,这样就是我们日常中操作的节点。步骤如下:

2)操作流程:

a.此时为无界面阶段

方法一:进入黑屏界面之后,先按F11,进入界面选择UEFI,再选择有DVD那一步的选项;再按F1,进入简洁界面;BIOS-BOOT,进入界面;选择DVD;选择F2(此处有空白,3min);reboot;等待等待等待,之后的就是安装好之后的步骤···F1~~~

方法二:F12,然后PXEboot然后选择DVD或者SLOT选项

b.接着是有安装界面的操作

同样是傻瓜式操作向后点:下一步——country:China,TimeZone:Asia/Chongqing,KeyBoardLayout:US,English,下一步——此处参数由自己定,下一步——下一步——成功!

c.傻瓜操作结束,开始命令行操作进行集群搭建。但是集群搭建之前需要解决两个问题:

1、vi编辑器过于不好用,下载vim:apt-getupdate;apt-getinstallvim;(然后在用vim编辑的时候看不到最上面就用shift+pageup向上调)

2、修改/etc/hosts与/etc/hostname中参数:将二者中的PVE都改成每个ip对应的名字,eg:pve14之类的,这样节点才能加进去。

d.开始集群命令行操作:

1、创建集群名字aciecluster:pvecmcreateaciecluster

2、登陆每个slave节点,执行:pvecmadd192.168.2.104(主节点IP)

3、在主节点查看状态:pvecmnodes

4、登录:

(主节点IP):8006

e。出现问题:250节点加不进去

1、添加节点后面添加_force(是两个横线),命令变成:pvecmadd192.168.2.250;

2、再重启集群:重启物理机;之后在客户端命令重启reboot

四、创建KVM

1)基本概念

其实KVM就是一个一个的虚拟节点,和虚拟机差不多,只不过这是安装在服务器端的虚拟机,安装步骤如下。

2)安装步骤

点击数据中心下想要创建节点的服务器,然后在右上角有“创建VM”标志——一般:点击之后给节点命名,给定VMID,此处还可以改在其他的服务器上创建节点——OS:点选右侧Linux3.x/2.6kernel——CD/DVD:选第一个,导入镜像——硬盘:自己设置参数——CPU:自己设置参数——内存:自己设置参数——网络:自己设置参数——确认

五、节点上CentOS6.4系统安装:

1)注意事项:

a)ALT+F5是把屏幕缩小,大致能看到下一步的位置;之后的界面就看不到了,在看不到tab之后连按两下就到了下一步

b)第一个选skip;安装系统,一路正常配置,直到界面:

2)安装步骤:

useallspace,reviewandmodifypartitionlayout,点击“next”——删除所有分区后,创建两个分区,其中一个为/boot(大小为200),另一个为/(点选“filltomaximumallowablesize”,大小不用填写,意为自动分配所有剩余空间给它)——Yes——next——Format——writechangestodisk——next——点选minimal,next——完成后配置用户信息,欧了!

六、配置IP并下载Teamviewer

上面的步骤基本上节点已经差不多了,就差IP了,配好IP后为了方便操作节点,每个节点上最好下载一个Teamviewer。步骤如下:

1、虚拟机联网(保证ip不变):

1)首先改成NAT模式(虚拟机——可移动设备——网络适配器——设置)

2)然后在IPv4里面把ip设置成手动的,更改IP地址、子网掩码、网关以及DNS,应用

3)最后点击右上角小电脑的logo,勾选enablenotification就行了

2、右上角小电脑变成disconnect的了,也就是说网络不能连接,而且ifconfig也找不到ip地址:

1)首先就是按照“1、”的步骤重新试一遍,其中要多注意一点就是他的物理地址要改成本机物理地址,就是ifconfig命令之后出来的那个本机地址(不是ip)

2)如果没有ifconfig信息,那么就需要先设置网络为桥接模式,然后再将网络改回来NAT模式。

3、开始下载Teamviewer:

1)wgetdownload.teamviewer.com/download/linux_teamviewer.rpm

2)yuminstalllinux_teamviewer.rpm3)这里就不用解压了,直接就可以运行了,此时已经能用了,在Application-Internet中找到teamviewer,可以右键把它加到桌面上

4、设置开机自启

1)在system-preference-startupApplication中设置

2)点击add,将Teamviewer的属性(从Teamviewer属性中复制出来黏贴进去就行了)添加进去,欧了

七、Proxmox节点恢复与备份

自此为止,节点已经全部搞定了,然后之后就涉及到节点备份与恢复的问题,这里会简略讲一下。

1)备份:

选中【数据中心】,选择【存储】标签,选中要添加支持的存储,点击【编辑】,在【内容】的下拉菜单中选上Backups。这里的【最大备份数】必须大于等于1,其含义为当某个虚拟机的备份文件超过最大备份数时,再进行备份将会删除时间最早的备份。这对后面要提到的自动备份计划而言非常有用,可以省去我们人工删除过时备份的麻烦。

PVE的备份文件存在./dump文件夹中,根据备份时选择的数据压缩方式的不同,生成.vma.lo或者.vma.gz.为后缀的文件,同时伴随一个相关的.log日志文件。【Path/Target】为PVE备份文件夹所在的路径,在本例中备份文件将存储在/var/lib/vz/dump文件夹中。

接下来我们就可以开始备份了。先选中【数据中心】,切换到【备份】标签页,点击【添加】,将出现【创建:备份计划】对话框,可以选择需要备份的节点,设定备份计划于每周周几的几点开始,然后选择需要进行备份的虚拟机,设置数据压缩方式与备份模式后即可。数据备份将于设定时间自动启动。

当然了,我们也可以对单个虚拟机进行立即备份,选中需要备份的虚拟机,切换到【备份】标签,设置备份模式与数据压缩方式,点击【备份】即可开始备份。

2)挂载磁盘将文件拷贝出来:

步骤很简单,就是先把硬盘插到你所在的服务器物理机上,然后

1)下载ntfs驱动:apt-getupdateapt-getinstallntfs-3g

2)创建挂载点文件夹:mkdir/mnt/windows

3)进入/dev/查看移动硬盘信息fdisk-l

4)插入移动硬盘,再次在/dev目录下执行查看移动硬盘信息fdisk-l

5)比较两次信息,发现多出一个/dev/sda1,将sda1挂载到文件夹中:mount-tntfs-3g/dev/sda1/mnt/windows

6)进入目标文件夹(promox备份的文件都在/var/lib/vz中)cd/var/lib/vz

7)将文件拷贝到挂载硬盘中cp-r(整个文件夹复制)dump/mnt/windows

8)解除挂载(相当于安全退出)umont/mnt/windowsd)

3)数据恢复:

同样的上述挂载步骤,将所移出来的文件放在/var/lib/vz/dump中,可以看到备份文件以.vma.lzo为后缀。选中需要使用的备份文件,点击【恢复】,将弹出【RestoreVM】对话框,可以设置存储位置与VMID,点击【恢复】即可开始恢复。有意思的是,这里的VMID除了可以设置成原有的虚拟机ID,将备份文件恢复并覆盖该虚拟机外,还可以设置成新的ID,将备份文件生成其他的与备份虚拟机一模一样的虚拟机。至此,服务器杂七杂八的配置完毕,如果有需要还会再进行补充的。

问题解决:1、节点关不掉以及开不了(命令查询去官网查看)

1)204节点开不了:索性就不开了,将pve、pve14、pve15全部关掉,这样就剩下那个关不掉的节点了。

2)205节点关不掉:关闭的时候会报错,报错信息是节点因为克隆被锁住了,用命令行将节点断开连接,然后再关掉

Linux btrfs文件系统及管理

Linux btrfs文件系统及管理

linux文件系统,具有写时复制COW(copy-on-write),改善ext3文件系统单文件大小限制,并加入其他特性,如可写快照,快照的快照,内建RAID,子卷(subvloume),专注于容错,修复和易于管理,下面一起来看看什么是linux btrfs文件系统及管理关系吧!

什么是btrfs?

Btrfs(B-tree文件系统,通常念成Butter FS,Better FS或B-tree FS),linux文件系统,具有写时复制COW(copy-on-write),改善ext3文件系统单文件大小限制,并加入其他特性,如可写快照,快照的快照,内建RAID,子卷(subvloume),专注于容错,修复和易于管理。单文件可达16EB,最大文件数量2^64,最大卷容量16EB,等。

btrfs功能特性

1,COW:写时复制,每次写入数据时,先将数据写入到新的block,写入成功后,更改旧数据块指针到新数据块,而非更改本身。

2,多物理卷支持,btrfs内建raid,可在线增删磁盘设备,可在线扩展和缩减磁盘空间。

3,数据和元数据校验码,checksum

4,子卷,可单独挂载子卷

5,可写快照,快照的快照,单个文件快照。

6,透明压缩

7,ext3/4和btrfs无痛互转

btrfs基本用法:

bash/shell Code复制内容到剪贴板

[root@localhost~]# btrfs--help#查看帮助可以看到btrfs有很多子命令,用法也很多,这里只举例常用选项。

usage: btrfs [--help] [--version] [...] []

btrfs subvolume create [-i ] [/]#创建子卷

Create a subvolume

btrfs subvolume delete [options] [...]#删除子卷

Delete subvolume(s)

btrfs subvolume list [options] [-G [+|-]value] [-C [+|-]value] [--sort=gen,ogen,rootid,path]#显示子卷列表

List subvolumes(and snapshots)

btrfs subvolume snapshot [-r] [-i ]|[/]#创建子卷快照

Create a snapshot of the subvolume

btrfs subvolume get-default#获取子卷默认的文件系统

Get the default subvolume of a filesystem

btrfs subvolume set-default#设置默认系统给子卷

Set the default subvolume of a filesystem

btrfs subvolume find-new#列出btrfs文件系统中最近修改的文件,结合find命令

List the recently modified files in a filesystem

btrfs subvolume show#显示更多的子卷信息

Show more information of the subvolume

btrfs subvolume sync [...]#子卷同步,类似mount同步模式,内存数据同步到磁盘,有待查证。

Wait until given subvolume(s) are completely removed from the filesystem.

btrfs filesystem df [options]#显示挂载的文件系统详细信息。

Show space usage information for a mount point

btrfs filesystem show [options] [|||label]#显示创建文件系统的磁盘信息。

Show the structure of a filesystem

btrfs filesystem sync#强制文件系统同步,

Force a sync on a filesystem

btrfs filesystem defragment [options]|

[|...]#碎片整理

Defragment a file or a directory

btrfs filesystem resize [devid:][+/-][kKmMgGtTpPeE]|[devid:]max#btrfs文件系统在线扩展和缩减空间

Resize a filesystem

btrfs filesystem label [|] []#改变btrfs文件系统卷标

Get or change the label of a filesystem

btrfs filesystem usage [options] [..]#显示文件系统当前的使用信息。

Show detailed information about internal filesystem usage.

btrfs balance start [options]#改变磁盘chunk,在线改数据和元数据存储方式,单盘改raid,前提满足raid要求。

Balance chunks across the devices

btrfs balance pause#暂停chunk更改,数据量较大,转换时间较长时,先暂停。

Pause running balance

btrfs balance cancel#取消chunk更改,如上

Cancel running or paused balance

btrfs balance resume#中断balance的操作,如上

Resume interrupted balance

btrfs balance status [-v]#显示balance操作状态如上

Show status of running or paused balance

btrfs device add [options] [...]#文件系统增加磁盘

Add a device to a filesystem

btrfs device delete [...]#文件系统删除磁盘

Remove a device from a filesystem

btrfs device scan [(-d|--all-devices)| [...]]#文件系统磁盘扫描

Scan devices for a btrfs filesystem

btrfs device ready#猜测是检测加入的设备有没有被挂载

Check device to see if it has all of its devices in cache for mounting

btrfs device stats [-z]|#显示文件系统的设备状态

Show current device IO stats.-z to reset stats afterwards.

btrfs device usage [options] [..]#显示文件系统内部设备详细使用信息

Show detailed information about internal allocations in devices.

btrfs文件系统管理

为分区创建btrfs文件系统

bash/shell Code复制内容到剪贴板

[root@localhost~]# fdisk-l| grep"^Disk/dev/sd[a-z]"#准备sd{b,c,d,e}4块20G磁盘,未做任何分区。

Disk/dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors

Disk/dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors

Disk/dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors

Disk/dev/sde: 21.5 GB, 21474836480 bytes, 41943040 sectors

Disk/dev/sdd: 21.5 GB, 21474836480 bytes, 41943040 sectors

创建单分区btrfs并查看

bash/shell Code复制内容到剪贴板

[root@localhost~]# mkfs.btrfs-L'btrfs'/dev/sdb

btrfs-progs v3.19.1

See for more information.

Turning ON incompat feature'extref': increased hardlink limit per file to 65536

Turning ON incompat feature'skinny-metadata': reduced-size metadata extent refs

fs created label btrfs on/dev/sdb

nodesize 16384 leafsize 16384 sectorsize 4096 size 20.00GiB

[root@localhost~]# btrfs filesystem show

Label:'btrfs' uuid: 2a9f0d3d-f8a0-4757-9f4e-d1efa04a683a

Total devices 1 FS bytes used 112.00KiB

devid 1 size 20.00GiB used 2.04GiB path/dev/sdb

btrfs-progs v3.19.1

[root@localhost~]# mount-o compress=lzo-L btrfs/btrfs/挂载时可以设定透明压缩机制。

[root@localhost~]# btrfs filesystem df/btrfs

Data, single: total=8.00MiB, used=256.00KiB

System, DUP: total=8.00MiB, used=16.00KiB

System, single: total=4.00MiB, used=0.00B

Metadata, DUP: total=1.00GiB, used=112.00KiB

Metadata, single: total=8.00MiB, used=0.00B

GlobalReserve, single: total=16.00MiB, used=0.00B

再添加一块磁盘

bash/shell Code复制内容到剪贴板

[root@localhost~]# btrfs device add/dev/sdc/btrfs#添加磁盘,删除用btrfs device delete/dev/sdc/btrfs

[root@localhost~]# btrfs fi sh

Label:'btrfs' uuid: 2a9f0d3d-f8a0-4757-9f4e-d1efa04a683a

Total devices 2 FS bytes used 384.00KiB

devid 1 size 20.00GiB used 2.04GiB path/dev/sdb

devid 2 size 20.00GiB used 0.00B path/dev/sdc

btrfs-progs v3.19.1

[root@localhost~]#

在线增加或缩减空间,在线改变空间,可以让lvm坐冷板凳了。

bash/shell Code复制内容到剪贴板

[root@localhost~]# btrfs fi resize-10G/btrfs/#在线缩减空间

Resize'/btrfs/' of'-10G'

[root@localhost~]# btrfs fi sh

Label:'btrfs' uuid: 2a9f0d3d-f8a0-4757-9f4e-d1efa04a683a

Total devices 2 FS bytes used 384.00KiB

devid 1 size 10.00GiB used 2.04GiB path/dev/sdb

devid 2 size 20.00GiB used 0.00B path/dev/sdc

btrfs-progs v3.19.1

[root@localhost~]# btrfs fi resize+7G/btrfs/#在线增加空间

Resize'/btrfs/' of'+7G'

[root@localhost~]# btrfs fi sh

Label:'btrfs' uuid: 2a9f0d3d-f8a0-4757-9f4e-d1efa04a683a

Total devices 2 FS bytes used 384.00KiB

devid 1 size 17.00GiB used 2.04GiB path/dev/sdb

devid 2 size 20.00GiB used 0.00B path/dev/sdc

btrfs-progs v3.19.1

[root@localhost~]#

在线更改数据和元数据的结构

bash/shell Code复制内容到剪贴板

[root@localhost~]# btrfs fi df/btrfs/

Data, single: total=8.00MiB, used=256.00KiB

System, DUP: total=8.00MiB, used=16.00KiB

System, single: total=4.00MiB, used=0.00B

Metadata, DUP: total=1.00GiB, used=112.00KiB

Metadata, single: total=8.00MiB, used=0.00B

GlobalReserve, single: total=16.00MiB, used=0.00B

[root@localhost~]# btrfs balance start-mconvert=raid1/btrfs/#-mconvert为改变metadata元数据区的存储结构

Done, had to relocate 4 out of 5 chunks

[root@localhost~]# btrfs fi sh

Label:'btrfs' uuid: 2a9f0d3d-f8a0-4757-9f4e-d1efa04a683a

Total devices 2 FS bytes used 192.00KiB

devid 1 size 17.00GiB used 296.00MiB path/dev/sdb

devid 2 size 20.00GiB used 288.00MiB path/dev/sdc

btrfs-progs v3.19.1

[root@localhost~]# btrfs fi df/btrfs/

Data, single: total=8.00MiB, used=64.00KiB

System, RAID1: total=32.00MiB, used=16.00KiB

Metadata, RAID1: total=256.00MiB, used=112.00KiB#对比上改为了raid1

GlobalReserve, single: total=16.00MiB, used=0.00B

[root@localhost~]# btrfs balance start-dconvert=raid1/btrfs/#-dconvert为改变data数据区的存储结构

Done, had to relocate 1 out of 3 chunks

Linux内核:regmap机制

在Linux 3.1版本引入的regmap机制,是为了统一管理和简化内核中I2C、SPI等总线的驱动程序。这个机制通过抽象化I/O读写操作,将重复逻辑封装在regmap模型中,使得只需初始化时配置关键参数,如总线类型、寄存器位宽等,即可通过regmap接口操作器件的寄存器,极大地提高了代码的可重用性。

regmap不仅适用于管理外设的寄存器,也适用于操作CPU自身的寄存器,将诸如i2c、spi、mmio、irq等内核基础组件抽象为统一的接口,如regmap_read、regmap_write、regmap_update_bits等,从而简化使用流程,提高代码的简洁性和可维护性。

regmap提供了一个通用的框架,用于在Linux内核中减少慢速I/O驱动上的重复逻辑,通过提供通用接口来操作底层硬件寄存器。在regmap与驱动和硬件寄存器之间使用缓存可以减少底层低速I/O操作次数,提高访问效率,尽管这样做可能会降低实时性。

传统的写法中,例如对于I2C设备,需要自己构建i2c_msg,然后使用i2c_transfer来实现读写操作,过程较为繁琐。使用regmap机制后,操作变得更为简洁。初始化阶段需配置regmap信息(总线类型、寄存器位宽、缓存类型、读写属性等),注册实例后即可通过抽象访问接口进行寄存器访问。

regmap简化了设备驱动的读写特性。regmap的write操作通过构造i2c_msg、选择操作寄存器地址并读取寄存器值来实现,将总线读写操作抽离至regmap中,避免了驱动重复实现。regmap_init_i2c函数用于初始化配置后的config与描述I2C设备的bus信息,设置regmap的bus指针和config寄存器参数。regmap_init函数初始化了regmap,准备好操作I2C寄存器所需的所有信息。

regmap机制中引入的缓存层,通过减少IO操作次数来提高硬件操作效率,提供了三种缓存类型:数据(flat)、LZO压缩和红黑树(rbtree),选择缓存类型在regmap初始化时通过配置regmap_config的cache_type参数完成。对于regmap_read操作,如果缓存中有值,则直接从缓存中获取值,若需要从硬件读取,则调用具体协议的读写函数,如I2C时调用i2c_transfer。

简而言之,regmap机制通过提供统一的接口和缓存层,大大简化了Linux内核中对各种总线和硬件寄存器的读写操作,提高了代码的可维护性和效率,简化了驱动程序的实现流程。在驱动程序中使用regmap基本方法和调用过程结束于此。欲深入了解Linux内核源码分析,请参阅相应资源。

阅读剩余
THE END