• [问题求助] 【鲲鹏服务器】【编译安装mysql】【openEuler】【openssl】编译安装mysql报错
    【服务器信息】操作系统openEuler23,cpu鲲鹏【主要内容】我参考patch使用说明-MySQL OLAP并行优化特性-基础加速特性-鲲鹏BoostKit数据库使能套件-文档首页-鲲鹏社区 (hikunpeng.com)优化mysql,按照教程操作,在使用cmake编译安装mysql的时候出现如下错误错误信息提示我没有安装openssl,我就去执行安装,发现系统已经存在openssl然后去网上找结局方法,我看有的openssl是1.1版本的,我就去装1.1的版本,结果还是报没有openssl错误
  • 华为atlas openeuler操作系统制卡失败
    制卡失败,失败原因为qemu is broken or the version of qemu is not compatible我已经按照华为官方文档的要求安装了相应的依赖软件,为什么还会出现qemu broken的错误
  • iSulad不通过K8S,如何使用veth-pair来连接网络
    iSulad不通过K8S,如何使用veth-pair来连接网络?
  • [问题求助] 新人求助,yum安装perf后执行报错
    通过yum命令安装的perf,在执行时报错 yum install perf perf --help -bash: /usr/bin/perf: cannot execute binary file: Exec format error操作系统版本:euleros2.0linux版本:Linux version 5.10.0-60.18.0.50.h322_1.hce2.x86_64perf版本:perf-5.10.0-60.18.0.50.r665_5.hce2.x86_64
  • [课程学习] 求助一下关于配置yum的问题
    操作系统课程要求安装虚拟机,用的学校提供的这个教程https://blog.csdn.net/frdevolcqzyxynjds/article/details/105648163全部按照教程要求,在配置openEuler的yum源的时候,别的都没事,就在更新yum源的时候显示了这个问题在社区和搜索引擎上全都搜索过了,也问过做过的朋友,都找不到解决方案(那个baseurl的网址换过很多种且都人工搜索过全是有效网址)......老师规定周一前要上交,现在属于是第一步直接卡死......有人知道这个怎么解决吗,孩子不想实验课全部重修呃呃
  • [问题求助] 在openEuler aarch64 22.03-lts容器中启动rsyslog报错,求助
    在openEuler 22.03-lts aarch64版本的容器中安装rsyslogd,根据centos的类似方法,将以下注释 #### MODULES ####  #module(load="imuxsock"           # provides support for local system logging (e.g. via logger command) #       SysSock.Use="off") # Turn off message reception via local log socket;                           # local messages are retrieved through imjournal now. #module(load="imjournal"            # provides access to the systemd journal #       StateFile="/run/log/imjournal.state") # File to store the position in the journal #module(load="imklog") # reads kernel messages (the same are read from journald) #module(load="immark") # provides --MARK-- message capability  #$imjournalRatelimitInterval 0 启动rsyslog报错 [root@fb4bbc75f4e5 ~]# rsyslogd  rsyslog startup failure, child did not respond within startup timeout (60 seconds) 求助解决
  • [其他问题] PXE安装openEuler时缺少网卡驱动
    请教下如何在openEuler 20.03 LTS SP1 pxe镜像initrd.img中添加网卡驱动
  • [经验案例] 【OpenEuler 01】重新编译openEuler内核,修改内核PAGESIZE大小为4K
    一、配置openeuler源1、执行如下命令, 下载新的openEulerOS.repo到/etc/yum.repos.d/目录下.for aarch64 :wget -O /etc/yum.repos.d/openEulerOS.repo https://repo.huaweicloud.com/repository/conf/openeuler_aarch64.repo2、执行yum clean all清除原有yum缓存。3、执行yum makecache生成新的缓存。4、添加基本OS依赖yum install -y gcc gcc-c++ make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel openblas-devel gcc-gfortran ncurses-devel bison m4 flex bc二、重新编译openeuler内核1、下载当前版本的内核源码yum install -y kernel-source.aarch642、开始修改内核参数cd /usr/src/linux-4.19.90-2212.4.0.0183.oe1.aarch64/ make menuconfig3、修改内核PAGESIZE大小为4K。3.1 选择“Kernel Features”。3.2 按“Enter”键进入下一级菜单,选择“Page size(64KB)”。3.3 按“Enter”键进入选择,按“Space”键选择4KB。3.4 按两次“exit”保存并退出。4、开始编译make -j 645、安装make modules_install make install6、更新grub启动列表grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg7、修改默认内核启动项。cat /etc/grub2-efi.cfg | grep openEuler其中“openEuler (4.19.90) 20.03 (LTS-SP3)”为新安装内核版本。grub2-set-default "openEuler (4.19.90) 20.03 (LTS-SP3)"8、重启系统。reboot9、重启后查看PAGESIZEgetconf PAGESIZE结果符合预期[root@localhost ~]# [root@localhost ~]# getconf PAGESIZE 4096 [root@localhost ~]#
  • [问题求助] 鲲鹏平台应用软件移植调优综合实验 基于华为云鲲鹏弹性云服务器部署OA系统。
    在该课程中,我在部署安装OA系统时,需要下载classpath.txt文件,但是视频中和实验指导书中的链接已经失效,wget https://hcia.obs.cn-north-4.myhuaweicloud.com/v1.5/classpath.txt,该步骤在实验指导书第34页,4.8步骤处在网上实在不到资源,寻求大佬帮助。
  • [问题求助] isula容器启动时Execute operation failed
    使用环境:北京四-鲲鹏虚拟机,操作系统openEuler20.03使用命令:如上图,安装完isula后仅配置了镜像源docker.io(使用hub.oepkgs.net也是一样的效果)
  • [问题求助] openEuler安装高可用k8s kubesphere出现故障
    【标题描述】能够简要描述问题: 在使用kubesphere提供的kk工具安装 k8s 1.19.8和Kubesphere v3.1.0时,出现了 kubesphere组件redis-ha-haproxy组件一直无法启动的情况,通过排查内核日志及kubelet日志 ,发现该容器是被kubelet Omm kill掉, 但是服务器节点内存非常充足,3个master 节点分别是16G 、32G 、16g,空闲内存还很多,具体如下 kubelet事件操作系统内核日志Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633785] haproxy invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=994 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633788] CPU: 1 PID: 192200 Comm: haproxy Kdump: loaded Not tainted 5.10.0-60.18.0.50.oe2203.x86_64 #1 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633789] Hardware name: OpenStack Foundation OpenStack Nova, BIOS rel-1.10.2-0-g5f4c7b1-20181220_000000-szxrtosci10000 04/01/2014 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633790] Call Trace: Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633799] dump_stack+0x57/0x6a Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633802] dump_header+0x4a/0x1f0 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633804] oom_kill_process.cold+0xb/0x10 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633808] out_of_memory+0x100/0x310 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633812] mem_cgroup_out_of_memory+0x134/0x150 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633813] mem_cgroup_oom+0x14d/0x180 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633815] try_charge+0x2b1/0x580 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633817] ? __pagevec_lru_add_fn+0x183/0x2e0 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633819] mem_cgroup_charge+0xf1/0x250 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633821] do_anonymous_page+0x1f2/0x560 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633823] __handle_mm_fault+0x3dd/0x6d0 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633824] handle_mm_fault+0xbe/0x290 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633827] exc_page_fault+0x273/0x550 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633830] ? asm_exc_page_fault+0x8/0x30 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633831] asm_exc_page_fault+0x1e/0x30 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633833] RIP: 0033:0x55a4a16d2a9a Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633835] Code: 1b 00 ff ff ff ff c7 05 2c 92 1b 00 ff ff ff ff c7 05 1e 92 1b 00 ff ff ff ff 85 ed 7e 34 66 90 48 63 c2 83 c2 01 48 c1 e0 06 <48> c7 04 03 00 00 00 00 48 8b 1d 57 3b 1b 00 48 01 d8 c7 40 18 fd Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633836] RSP: 002b:00007ffe490870e0 EFLAGS: 00010206 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633838] RAX: 000000001f254000 RBX: 00007f68f22b6010 RCX: 00007f62f22b6010 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633839] RDX: 00000000007c9501 RSI: 0000000000000000 RDI: 0000000000000000 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633840] RBP: 000000003ffffff7 R08: 00007f62f22b6010 R09: 0000000000000000 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633841] R10: 0000000000000022 R11: 0000000000000246 R12: 00007f66f22b6010 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633842] R13: 000055a4a225ec30 R14: 0000000000000001 R15: 0000000000000001 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633844] memory: usage 512000kB, limit 512000kB, failcnt 2537 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633844] memory+swap: usage 512000kB, limit 9007199254740988kB, failcnt 0 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633845] kmem: usage 0kB, limit 9007199254740988kB, failcnt 0 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633845] Memory cgroup stats for /kubepods.slice/kubepods-burstable.slice/kubepods-burstable-podc9f031a9_b682_459c_ad9d_8fbb491edbdb.slice: Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633855] anon 524288000#012file 0#012kernel_stack 0#012percpu 0#012sock 0#012shmem 0#012file_mapped 0#012file_dirty 0#012file_writeback 0#012anon_thp 511705088#012inactive_anon 524242944#012active_anon 8192#012inactive_file 0#012active_file 0#012unevictable 0#012slab_reclaimable 0#012slab_unreclaimable 0#012slab 0#012workingset_refault_anon 0#012workingset_refault_file 14598#012workingset_activate_anon 0#012workingset_activate_file 6#012workingset_restore_anon 0#012workingset_restore_file 0#012workingset_nodereclaim 0#012pgfault 35036#012pgmajfault 561#012pgrefill 10434#012pgscan 29409#012pgsteal 17231#012pgactivate 9817#012pgdeactivate 10021#012pglazyfree 0#012pglazyfreed 0#012thp_fault_alloc 1967#012thp_collapse_alloc 0 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633856] Tasks state (memory values in pages): Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633857] [ pid ] uid tgid total_vm rss pgtables_bytes swapents oom_score_adj name Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633859] [ 186685] 1000 186685 243 1 28672 0 -998 pause Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633861] [ 192200] 1000 192200 23072522 127962 1118208 0 994 haproxy Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633862] oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=docker-be7545b7c95b6f6f011944a5e3c693363db0a18e9a4e4e089a5b4bfea1a12e28.scope,mems_allowed=0,oom_memcg=/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-podc9f031a9_b682_459c_ad9d_8fbb491edbdb.slice,task_memcg=/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-podc9f031a9_b682_459c_ad9d_8fbb491edbdb.slice/docker-be7545b7c95b6f6f011944a5e3c693363db0a18e9a4e4e089a5b4bfea1a12e28.scope,task=haproxy,pid=192200,uid=1000 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.633870] Memory cgroup out of memory: Killed process 192200 (haproxy) total-vm:92290088kB, anon-rss:511720kB, file-rss:128kB, shmem-rss:0kB, UID:1000 pgtables:1092kB oom_score_adj:994 Dec 15 21:04:20 ahsshjz-k8smaster01 kernel: [16704.637227] oom_reaper: reaped process 192200 (haproxy), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB 以上操作系统日志,我配置的haproxy最大limit限制为500M 出现 oom 以下日志为我配置pod limit限制为1500M 启动仍然是oom Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159234] haproxy invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=997 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159237] CPU: 0 PID: 269263 Comm: haproxy Kdump: loaded Not tainted 5.10.0-60.18.0.50.oe2203.x86_64 #1 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159238] Hardware name: OpenStack Foundation OpenStack Nova, BIOS rel-1.10.2-0-g5f4c7b1-20181220_000000-szxrtosci10000 04/01/2014 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159239] Call Trace: Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159246] dump_stack+0x57/0x6a Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159250] dump_header+0x4a/0x1f0 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159252] oom_kill_process.cold+0xb/0x10 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159255] out_of_memory+0x100/0x310 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159259] mem_cgroup_out_of_memory+0x134/0x150 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159261] mem_cgroup_oom+0x14d/0x180 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159262] try_charge+0x2b1/0x580 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159265] ? __pagevec_lru_add_fn+0x183/0x2e0 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159266] mem_cgroup_charge+0xf1/0x250 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159268] do_anonymous_page+0x1f2/0x560 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159271] __handle_mm_fault+0x3dd/0x6d0 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159272] handle_mm_fault+0xbe/0x290 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159275] exc_page_fault+0x273/0x550 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159278] ? asm_exc_page_fault+0x8/0x30 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159279] asm_exc_page_fault+0x1e/0x30 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159281] RIP: 0033:0x562cc41baa9a Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159283] Code: 1b 00 ff ff ff ff c7 05 2c 92 1b 00 ff ff ff ff c7 05 1e 92 1b 00 ff ff ff ff 85 ed 7e 34 66 90 48 63 c2 83 c2 01 48 c1 e0 06 <48> c7 04 03 00 00 00 00 48 8b 1d 57 3b 1b 00 48 01 d8 c7 40 18 fd Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159284] RSP: 002b:00007ffcc9b32e70 EFLAGS: 00010206 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159286] RAX: 000000005da52000 RBX: 00007f58a8a43010 RCX: 00007f52a8a43010 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159286] RDX: 0000000001769481 RSI: 0000000000000000 RDI: 0000000000000000 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159287] RBP: 000000003ffffff7 R08: 00007f52a8a43010 R09: 0000000000000000 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159288] R10: 0000000000000022 R11: 0000000000000246 R12: 00007f56a8a43010 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159289] R13: 0000562cc4afcc30 R14: 0000000000000001 R15: 0000000000000001 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159290] memory: usage 1536000kB, limit 1536000kB, failcnt 1668 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159291] memory+swap: usage 1536000kB, limit 9007199254740988kB, failcnt 0 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159292] kmem: usage 0kB, limit 9007199254740988kB, failcnt 0 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159292] Memory cgroup stats for /kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod655eac53_2a9d_4db8_b083_b4776263d81b.slice: Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159302] anon 1572851712#012file 12288#012kernel_stack 0#012percpu 0#012sock 0#012shmem 0#012file_mapped 0#012file_dirty 0#012file_writeback 0#012anon_thp 1560281088#012inactive_anon 1572843520#012active_anon 8192#012inactive_file 4096#012active_file 8192#012unevictable 0#012slab_reclaimable 0#012slab_unreclaimable 0#012slab 0#012workingset_refault_anon 0#012workingset_refault_file 8857#012workingset_activate_anon 0#012workingset_activate_file 0#012workingset_restore_anon 0#012workingset_restore_file 0#012workingset_nodereclaim 0#012pgfault 20892#012pgmajfault 293#012pgrefill 5615#012pgscan 14815#012pgsteal 8858#012pgactivate 5191#012pgdeactivate 5192#012pglazyfree 0#012pglazyfreed 0#012thp_fault_alloc 2987#012thp_collapse_alloc 0 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159303] Tasks state (memory values in pages): Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159303] [ pid ] uid tgid total_vm rss pgtables_bytes swapents oom_score_adj name Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159305] [ 267934] 1000 267934 243 1 28672 0 -998 pause Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159307] [ 269263] 1000 269263 23072522 383961 3166208 0 997 haproxy Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159308] oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=docker-4db120f25d7ff16eba42ef22d3daef5201050bb61ff51f460f843c2e8cc62975.scope,mems_allowed=0,oom_memcg=/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod655eac53_2a9d_4db8_b083_b4776263d81b.slice,task_memcg=/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod655eac53_2a9d_4db8_b083_b4776263d81b.slice/docker-4db120f25d7ff16eba42ef22d3daef5201050bb61ff51f460f843c2e8cc62975.scope,task=haproxy,pid=269263,uid=1000 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.159317] Memory cgroup out of memory: Killed process 269263 (haproxy) total-vm:92290088kB, anon-rss:1535832kB, file-rss:12kB, shmem-rss:0kB, UID:1000 pgtables:3092kB oom_score_adj:997 Dec 15 22:22:52 ahsshjz-k8snode2 kernel: [23041.164890] oom_reaper: reaped process 269263 (haproxy), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB配置15000M 依然是启动haproxy 会达到最大内存限制,而被KillDec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922789] haproxy invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=997 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922793] CPU: 6 PID: 369292 Comm: haproxy Kdump: loaded Not tainted 5.10.0-60.18.0.50.oe2203.x86_64 #1 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922794] Hardware name: OpenStack Foundation OpenStack Nova, BIOS rel-1.10.2-0-g5f4c7b1-20181220_000000-szxrtosci10000 04/01/2014 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922795] Call Trace: Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922802] dump_stack+0x57/0x6a Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922806] dump_header+0x4a/0x1f0 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922808] oom_kill_process.cold+0xb/0x10 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922811] out_of_memory+0x100/0x310 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922815] mem_cgroup_out_of_memory+0x134/0x150 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922816] mem_cgroup_oom+0x14d/0x180 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922817] try_charge+0x2b1/0x580 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922821] ? free_one_page+0x1f4/0x510 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922823] mem_cgroup_charge+0xf1/0x250 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922824] do_anonymous_page+0x1f2/0x560 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922826] __handle_mm_fault+0x3dd/0x6d0 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922830] ? timerqueue_add+0x96/0xb0 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922831] handle_mm_fault+0xbe/0x290 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922834] exc_page_fault+0x273/0x550 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922837] ? asm_exc_page_fault+0x8/0x30 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922838] asm_exc_page_fault+0x1e/0x30 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922840] RIP: 0033:0x5577fa027a9a Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922842] Code: 1b 00 ff ff ff ff c7 05 2c 92 1b 00 ff ff ff ff c7 05 1e 92 1b 00 ff ff ff ff 85 ed 7e 34 66 90 48 63 c2 83 c2 01 48 c1 e0 06 <48> c7 04 03 00 00 00 00 48 8b 1d 57 3b 1b 00 48 01 d8 c7 40 18 fd Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922843] RSP: 002b:00007fffa81993b0 EFLAGS: 00010206 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922844] RAX: 00000003a9650000 RBX: 00007fb74efb9010 RCX: 00007fb14efb9010 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922845] RDX: 000000000ea59401 RSI: 0000000000000000 RDI: 0000000000000000 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922846] RBP: 000000003ffffff7 R08: 00007fb14efb9010 R09: 0000000000000000 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922846] R10: 0000000000000022 R11: 0000000000000246 R12: 00007fb54efb9010 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922847] R13: 00005577fa8d5c30 R14: 0000000000000001 R15: 0000000000000001 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922849] memory: usage 15360000kB, limit 15360000kB, failcnt 241 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922850] memory+swap: usage 15360000kB, limit 9007199254740988kB, failcnt 0 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922851] kmem: usage 0kB, limit 9007199254740988kB, failcnt 0 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922851] Memory cgroup stats for /kubepods.slice/kubepods-burstable.slice/kubepods-burstable-podee31ec4d_d8b6_456a_98b3_2c6617f23c31.slice: Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922861] anon 15728541696#012file 98304#012kernel_stack 0#012percpu 0#012sock 0#012shmem 0#012file_mapped 98304#012file_dirty 0#012file_writeback 0#012anon_thp 15720251392#012inactive_anon 15728500736#012active_anon 8192#012inactive_file 0#012active_file 98304#012unevictable 0#012slab_reclaimable 0#012slab_unreclaimable 0#012slab 0#012workingset_refault_anon 0#012workingset_refault_file 4190#012workingset_activate_anon 0#012workingset_activate_file 0#012workingset_restore_anon 0#012workingset_restore_file 0#012workingset_nodereclaim 0#012pgfault 33424#012pgmajfault 126#012pgrefill 2056#012pgscan 7287#012pgsteal 4167#012pgactivate 2080#012pgdeactivate 2056#012pglazyfree 0#012pglazyfreed 0#012thp_fault_alloc 22494#012thp_collapse_alloc 0 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922862] Tasks state (memory values in pages): Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922862] [ pid ] uid tgid total_vm rss pgtables_bytes swapents oom_score_adj name Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922865] [ 367900] 1000 367900 243 1 28672 0 -998 pause Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922866] [ 369292] 1000 369292 23072523 3840521 30867456 0 997 haproxy Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922868] oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=docker-214e3028cd48ecd5b091803d52122ea5f0bc2a1b40c2b8ddb7e4470d7c41a412.scope,mems_allowed=0,oom_memcg=/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-podee31ec4d_d8b6_456a_98b3_2c6617f23c31.slice,task_memcg=/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-podee31ec4d_d8b6_456a_98b3_2c6617f23c31.slice/docker-214e3028cd48ecd5b091803d52122ea5f0bc2a1b40c2b8ddb7e4470d7c41a412.scope,task=haproxy,pid=369292,uid=1000 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.922876] Memory cgroup out of memory: Killed process 369292 (haproxy) total-vm:92290092kB, anon-rss:15359908kB, file-rss:2176kB, shmem-rss:0kB, UID:1000 pgtables:30144kB oom_score_adj:997 Dec 15 22:26:26 ahsshjz-k8snode3 kernel: [22376.949848] oom_reaper: reaped process 369292 (haproxy), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB问题如上,请问我应该如何处理该问题,以上问题在centos7环境中未出现 目前发现 我部署mysql8.0 容器也会出现以上问题 【环境信息】 硬件信息: 1) 虚拟机.x86架构 2) 官方提供的虚拟机镜像 软件信息: 1) openeuler 22.03lts 2) 5.10.0-60.18.0.50.oe2203.x86_64 3) k8s v1.19.8 kubesphere v3.1.0 harproxy镜像 registry.cn-beijing.aliyuncs.com/kubesphereio/haproxy:2.0.4【问题复现步骤】 3台 openeuler 22.03lts,3个master节点 使用Kubesphere 官方提供的 kk工具创建集群 ./kk create config --with-kubernetes v1.19.8 --with-kubesphere v3.1.0 -f config-sample.yaml ./kk create cluster -f config-sample.yaml 出现概率(必现) 内核sysctl.conf配置内容如下kernel.sysrq=0 net.ipv4.ip_forward = 1 net.ipv4.conf.all.send_redirects=0 net.ipv4.conf.default.send_redirects=0 net.ipv4.conf.all.accept_source_route=0 net.ipv4.conf.default.accept_source_route=0 net.ipv4.conf.all.accept_redirects=0 net.ipv4.conf.default.accept_redirects=0 net.ipv4.conf.all.secure_redirects=0 net.ipv4.conf.default.secure_redirects=0 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.icmp_ignore_bogus_error_responses=1 net.ipv4.conf.all.rp_filter=1 net.ipv4.conf.default.rp_filter=1 net.ipv4.tcp_syncookies=1 kernel.dmesg_restrict=1 net.ipv6.conf.all.accept_redirects=0 net.ipv6.conf.default.accept_redirects=0
  • [公告] linux 入门指令
    文件管理命令 df命令 df命令描述:该命令检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。df命令语法:df [参数] [目录或文件名] 参数说明:参数 说明 -a 列出所有的文件系统,包括系统特有的/proc等文件系统。 -k 以KBytes为单位,返回各文件系统容量。 -m 以MBytes为单位,返回各文件系统容量。 -h 以GBytes、MBytes、KBytes为单位,返回各文件系统容量。 -H 以M=1000K取代M=1024K的进位方式显示各文件系统容量。 -T 显示文件系统类型。 -i 显示inode信息。 df命令使用示例:示例一:显示磁盘使用情况。执行如下命令,显示磁盘使用情况。df 返回结果如下所示。img示例三:显示系统内的所有特殊文件格式、名称及磁盘使用情况。执行如下命令,显示系统内的所有特殊文件格式、名称及磁盘使用情况。df -aT 返回结果如下所示。img示例四:以GBytes、MBytes、KBytes等格式显示各文件系统容量。执行如下命令,以GBytes、MBytes、KBytes等格式显示各文件系统容量。df -h 返回结果如下所示。imgdu命令 du命令描述:查看磁盘使用空间。du与df命令不同点在于,du命令用于查看文件和目录磁盘的使用空间。du命令语法:du [参数] [文件或目录名称] 参数说明:参数 说明 -a 列出所有的文件与目录容量。 -h 以G、M、K为单位,返回容量。 -s 列出总量。 -S 列出不包括子目录下的总量。 -k 以KBytes为单位,返回容量。 -m 以MBytes为单位,返回容量。 du命令使用示例:示例一:列出当前目录下的所有文件夹的容量。执行如下命令,列出当前目录下的所有文件夹的容量。du 返回结果如下所示。img示例二:列出当前目录下的所有文件夹和文件的容量。执行如下命令,列出当前目录下的所有文件夹和文件的容量。du -a 返回结果如下所示。img示例三:列出当前目录下的所有文件夹和文件的容量,并以G、M、K格式显示容量。执行如下命令,列出当前目录下的所有文件夹和文件的容量。du -ah 返回结果如下所示。img示例四:列出根目录底下每个目录所占用的容量,并以MBytes单位显示容量。执行如下命令,列出根目录底下每个目录所占用的容量,并以MBytes单位显示容量。du -sm /* 返回结果如下所示。imgfdisk命令 fdisk命令描述:该命令用于磁盘分区。fdisk命令语法:fdisk [-l] 装置名称 参数说明:参数 说明 -l 输出后面装置名称的所有的分区内容。若仅有 fdisk -l时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。 fdisk命令使用示例:示例一:列出系统所有装置的分区信息。执行如下命令,列出系统所有装置的分区信息。fdisk -l 返回结果如下所示。img示例二:列出系统中的根目录所在磁盘,并查阅该硬盘内的相关信息。a. 执行如下命令,找出根目录所在磁盘名。df / 返回结果如下所示。imgb. 执行如下命令,对磁盘/dev/vda进行分区操作。fdisk /dev/vda 注意:对磁盘进行分区操作时,磁盘名不包含数字。返回结果如下所示。imgc. 执行如下命令,获取帮助。m 返回结果如下所示。img执行如下命令,查看磁盘状态。p 返回结果如下所示,您可以查看到磁盘的相关状态。imgd. 执行如下命令,不存储任何操作并离开。q 文件目录管理命令 ls命令 命令描述: ls命令用于显示指定工作目录下的内容。命令格式:ls [参数] [目录名]。参数说明:参数 说明 -a 显示所有文件及目录(包括隐藏文件) -l 将文件的权限、拥有者、文件大小等详细信息列出(ll等同于ls -l) -r 将文件反序列出(默认按英文字母正序) -t 将文件按创建时间正序列出 -R 递归遍历目录下文件 命令使用示例:查看当前目录下的所有文件(包括隐藏文件)。ll -a 命令输出结果:imgpwd命令 命令描述:获取当前工作目录的绝对路径。命令使用示例:imgcd命令 命令描述:cd命令用于切换工作目录。命令使用示例:img在路径表示中:一个半角句号(.)表示当前目录,例如路径./app/log等同于app/log。两个半角句号(..)表示上级目录,例如路径/usr/local/../src等同于/usr/src,其中local和src目录同级。cd命令的默认参数为,符号表示当前用户的家目录,即在root用户登录时,命令cd、cd ~和cd /root执行效果相同。touch命名 命令描述:touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。命令格式:touch [参数] [文件]。参数说明:参数 说明 -c 如果指定文件不存在,不会建立新文件 -r 使用参考文件的时间记录 -t 设置文件的时间记录 命令使用示例:创建两个空文件。touch demo1.txt demo2.txt img修改demo1.txt的时间记录为当前系统时间。img更新demo2.txt的时间记录,使其和demo1.txt的时间记录相同。imgmkdir命令 命令描述:mkdir命令用于新建子目录。-p参数确保目录名称存在,不存在的就新建一个。mkdir -p a/b/c/d 命令使用示例:新建目录a/b/c/d,并使用tree命令查看创建后的目录结构。tree imgrm命令 命令描述:rm命令用于删除一个文件或者目录。命令格式:rm [参数] [文件]。参数说明:参数 说明 -i 删除前逐一询问确认 -f 无需确认,直接删除 -r 删除目录下所有文件 命令使用示例:无需确认直接删除文件。rm -rf demo* img无需确认直接删除目录a及其目录下所有子目录和文件。rm -rf a cp命令 命令描述: cp命令主要用于复制文件或目录。命令格式:cp [参数] [源文件] [目标文件]。参数说明:参数 说明 -d 复制时保留链接 -f 覆盖已经存在的目标文件而不给出提示 -i 覆盖前询问 -p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中 -r 复制目录及目录内的所有项目 命令使用示例:将目录c/d中的所有内容复制到目录a/b下。mv命令 命令描述: mv命令用来为文件或目录改名、或将文件或目录移入其它位置。命令格式:mv [参数] [源文件] [目标文件]参数说明:参数 说明 -i 若指定目录已有同名文件,则先询问是否覆盖旧文件 -f 如果目标文件已经存在,不会询问而直接覆盖 命令使用示例:将文件名a.txt改为b.txt。 img将c目录移动到a/b/c/d/下。 img将当前目录内容全部移动到/tmp目录中。mv ./* /tmp rename命令 命令描述:rename命令用字符串替换的方式批量改变文件名。rename命令有C语言和Perl语言两个版本,这里介绍C语言版本的rename命令,不支持正则表达式。命令使用示例:将当前目录下所有文件名中的字符串demo改为大写的字符串DEMO。 img将当前目录下所有.txt文件后缀都改为text。 img\4. 文件权限ls命令可以查看Linux系统上的文件、目录和设备的权限。img上述ls -l命令中显示的第一列就是文件权限信息,共11位字符,分5部分。第1位表示存档类型,d表示目录,-表示一般文件。第2~4位表示当前用户的权限(属主权限)。第5~7位表示同用户组的用户权限(属组权限)。第8~10位表示不同用户组的用户权限(其他用户权限)。第11位是一个半角句号.,表示SELinux安全标签。用户权限每组三位,rwx分别表示读、写、执行权限,对应八进制表示为4、2、1。例如efi目录的root用户权限为drwxr-xr-x.。该目录对root用户具有读写和执行所有权限。该目录对root组其他用户有读和执行权限。该目录对其他用户有读和执行权限。所以该权限表示对应八进制权限表示为:属主权限:4+2+1=7。属组权限:4+1=5。其他用户权限:4+1=5。即755。chmod命令 chmod命令用于修改文件权限mode,-R参数以递归方式对子目录和文件进行修改。命令使用示例:新建名为hello.sh的Shell脚本,该脚本将会输出Hello World。用ll命令可以看到新建的脚本没有执行权限,其权限用八进制表示为644。img将hello.sh文件增加属主的执行权限。 img将hello.sh文件撤销属主的执行权限。 img将hello.sh文件权限修改为八进制表示的744权限。 img使用bash命令解释器执行hello.sh脚本文件。 img其中,u+x表示增加属主的执行权限,u表示属主,g表示属组,o表示其他,a表示所有用户。chown命令 chown命令修改文件的属主和属组;-R参数以递归方式对子目录和文件进行修改;ls -l命令显示的第三列和第四列就是文件的属主和属组信息。命令使用示例:新建一个文本文件test.txt,用ll命令可以看到该文件的属主和属组是root。whoami命令可以查看当前Shell环境登录的用户名。img创建两个用户。imgimg修改test.txt文件的属主用户为test。 img修改test.txt文件的属主和属组为admin。 imgchgrp命令 chgrp命令用于修改文件的属组。命令使用示例:将test.txt文件的属组改为root。img磁盘管理命令 cat命令 cat命令描述:该命令用于连接文件并打印到标准输出设备上。cat命令语法:cat [参数] [文件名] 参数说明:参数 说明 -n 由1开始对所有输出的行数进行编号。 -b 由1开始对所有输出的行数进行编号,对于空白行不编号。 -s 当遇到有连续两行以上的空白行,就替换为一行的空白行。 -E 在每行结束处显示$。 -T 将 TAB 字符显示为^I。 cat命令使用示例:a. 执行如下命令,将一个自增序列写入test1.txt文件中。for i in $(seq 1 10); do echo $i >> test1.txt ; done imgb. 执行如下命令,查看文件test1.txt内容。cat test1.txt 返回结果如下所示。imgc. 执行如下命令,将test1.txt的文件内容加上行号后输入到test2.txt文件。cat -n test1.txt > test2.txt imgd. 执行如下命令,查看文件test2.txt内容。cat test2.txt 返回结果如下所示。imge. 执行如下命令,将test1.txt文件内容清空。cat /dev/null > test1.txt imgf. 执行如下命令,查看文件test1.txt内容。cat test1.txt 返回结果如下所示,您可以看到test1.txt文件没有任何内容。imgcmp命令 cmp命令描述:该命令用于比较两个文件是否有差异。当相互比较的两个文件完全一样时,该指令不会显示任何信息。否则会标示出第一个不同之处的字符和列数编号。当不指定任何文件名称,或文件名为"-",则cmp指令会从标准输入设备读取数据。cmp命令语法:cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件] 参数说明:参数 说明 -c 除了标明差异处的十进制字码之外,一并显示该字符所对应字符。 -i <字符数目> 指定一个数目。 -l 标示出所有不一样的地方。 -s 不显示错误信息。 -v 显示版本信息。 --help 在线帮助。 cmp命令使用示例:a. 执行如下命令,将一个自增序列1-5写入test1.txt文件中。for i in $(seq 1 5); do echo $i >> test1.txt ; done imgb. 执行如下命令,比较test1.txt文件和test2.txt文件是否相同。cmp test1.txt test2.txt 返回结果如下所示,您可以看到test1.txt文件和test2.txt文件第一行就有不同之处。img####diff命令diff命令描述:该命令用于比较文件的差异。diff命令以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。diff命令语法:diff [参数] [文件或目录1] [文件或目录2] 参数说明:参数 说明 -<行数> 指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。 -c 显示全部内文,并标出不同之处。 -u 以合并的方式来显示文件内容的不同。 -a diff预设只会逐行比较文本文件。 -b 不检查空格字符的不同。 -d 使用不同的演算法,以较小的单位来做比较。 -i 不检查大小写的不同。 -y 以并列的方式显示文件的异同之处。 -W<宽度> 在使用-y参数时,指定栏宽。 diff命令使用示例:执行如下命令,比较test1.txt文件和test2.txt文件,以并排格式输出。diff test1.txt test2.txt -y -W 50 img返回结果如下所示,您可以看到test1.txt文件和test2.txt文件的不同之处。imgfile命令 file命令描述:该命令用于辨识文件类型。file命令语法:file [参数] [文件] 参数说明:参数 说明 -b 列出辨识结果时,不显示文件名称。 -c 详细显示指令执行过程,便于排错或分析程序执行的情形。 -f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。 -L 直接显示符号连接所指向的文件的类别。 -v 显示版本信息。 -z 解读压缩文件的内容。 file命令使用示例:a. 执行如下命令,显示test1.txt文件类型。file test1.txt img返回结果如下所示,您可以看到test1.txt文件类型是ASCII text。imgb. 执行如下命令,显示test2.txt文件类型并不显示文件名称。file -b test2.txt imgfind命令 find命令描述:该命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。find命令语法:find [参数] [文件] 参数说明:参数 说明 -mount 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件。 -amin n 在过去n分钟内被读取过文件。 -type c 文件类型是c的文件。 -cmin n 在过去n分钟内被修改过。 -name name 查找文件名称为name的文件。 find命令使用示例:a. 执行如下命令,将当前目录及其子目录下所有文件后缀为.txt的文件列出来。find . -name "*.txt" img返回结果如下所示。imgb. 执行如下命令,查找系统中所有文件长度为0的普通文件,并列出它们的完整路径。find / -type f -size 0 -exec ls -l {} ; img返回结果如下所示。
  • 操作目的和应用场景
    一、操作目的和应用场景(一)目的CentOS 8系统启用selinux并实施强制访问控制。(二)简介安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。SELinux主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。设想一下,如果一个以 root 身份运行的网络服务存在 0day 漏洞,黑客就可以利用这个漏洞,以 root 的身份在您的服务器上为所欲为了。是不是很可怕?SELinux 就是来解决这个问题的。二、操作步骤(一)selinux**的工作模式1、 selinux的三种工作模式SELinux 有三种工作模式,分别是:enforcing //强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中permissive //宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用disabled //关闭 SELinuxSELinux 工作模式可以在/etc/selinux/config中设置。如果想从disabled切换到enforcing或者permissive的话,需要重启系统。反过来也一样。enforcing 和 permissive 模式可以通过 setenforce 1|0 命令快速切换。2、 启用selinux(1) 临时启用**selinuxsetenforce 1(2) 永久启用**selinuxvi /etc/selinux/config //编辑配置文件将SELINUX=disabled改为SELINUX=enforcing保存退出。重启后生效。reboot //重启计算机getenforce //查看selinux工作模式/usr/sbin/sestatus -v //查看selinux工作状态详情当前selinux的状态为enabled,工作模式为enforcing,策略为targeted,说明selinux已经正常工作了。反之,如果要禁用selinux,临时的方法是setenforce 0,持久化的方法是修改配置文件,设置SELINUX=disabled,并重启使之生效。(二)selinux的策略**和规则1、 selinux的策略系统中通常有大量的文件和进程,为了节省时间和开销,通常我们只是选择性地对某些进程进行管制。而哪些进程需要管制、要怎么管制是由策略决定的。在 CentOS系统中,有三套策略,分别是:targeted //对大部分网络服务进程进行管制,是默认的策略minimum //以targeted为基础,仅对选定的网络服务进程进行管制。一般不用。mls //多级安全保护。对所有的进程进行管制,这是最严格的策略,配置难度非常大。一般不用,除非对安全性有极高的要求。策略可以在/etc/selinux/config文件中指定。2、 selinux的规则一套策略里面有许多规则,其中部分规则可以按照需求启用或禁用,这些规则称为布尔型规则。规则是模块化、可扩展的。在安装新的应用程序时,应用程序可通过添加新的模块来添加规则。用户也可以手动地增减规则。3、 使用seinfo查看selinux的策略信息seinfo - SELinux policy information toolseinfo //不加参数运行,查看策略文件以及文件所包含的内容从输出可以看到,策略中包含Users、Roles、Types、Boleans,它们分别是用户、角色、类型和布尔型规则。下面分别查看:seinfo -r //查看selinux的所有角色(role)当前有14个selinux角色。seinfo -u //列出selinux的所有身份表示(user)当前有8个selinux用户seinfo -t //查看selinux的所有类型(type)可以看到,当前系统中selinux的类型有4940个。seinfo -b //列出所有布尔型规则当前有330条布尔型selinux规则。seinfo -b | grep nfs //-b --bool,查看与nfs相关的布尔型规则4、 使用sesearch查询selinux策略的详情sesearch是SELinux的策略查询工具,使用方法如下:sesearch --allow | grep \ cluster_t\ //查看主体类型为cluster_t的allow规则sesearch --allow | grep \ cluster_t: //查看客体类型为cluster_d的allow规则5、 使用setsebool开关一个布尔规则setsebool [选项] <规则名称> <on|off>setsebool -P httpd_anon_write on开关代表切换selinux规则的生效状态。运行成功后不显示任何信息。(三)selinux的**安全上下文1、 什么是安全上下文?安全上下文分为“进程安全上下文”和“文件安全上下文”。一个“进程安全上下文”一般对应多个“文件安全上下文”。只有两者的安全上下文对应上了,进程才能访问文件。它们的对应关系由策略中的规则决定。文件安全上下文由文件创建的位置和创建文件的进程所决定。而且系统有一套默认值,用户也可以对默认值进行设定。需要注意的是,单纯的移动文件操作并不会改变文件的安全上下文。2、 安全上下文间结构和含义安全上下文有四个字段,分别用冒号隔开。形如:system_u:object_r:admin_home_t:s0。3、 查看安全上下文(1) 查看文件的安全上下文ls -Z /var/www/htmp //查看目录的安全上下文可以看到/var/www/html/目录的selinux类型为http_sys_content_t(2) 查看进程的安全上下文ps auxZ | grep -v grep | grep httpd可以看到,httpd进程的selinux类型为http_t,且存在多个httpd进程,具有相同的安全上下文。注意,进程的安全上下文不同于其可执行文件的安全上下文。为什么httpd进程可以访问/var/www/html目录?因为当前存在着相应的允许主体httpd_t访问客体http_sys_content_t进行相关操作的的selinux规则。4、 修改文件安全上下文下面通过一个例子了解修改文件安全上下文的方法:(1) 创建测试文件//在/var/www/html目录中创建测试文件:echo index.html > /var/www/html/index.html//查看文件的安全上下文ls -Z /var/www/html/index.html可以看到,文件的selinux type为httpd_sys_content_t//在/root目录创建另一个测试文件echo index1.html > /root/index1.html//将测试文件移动到/var/www/html/目录中mv /root/index1.html /var/www/html/index1.html//查看测试文件的安全上下文ls -Z /var/www/html/index1.html可以看到,index1.html文件的selinux类型为admin_home_t。这是因为文件的安全上下文不会因为文件被移动而发生变化。//使用links远程访问index.html文件links 192.168.242.164/index.html访问成功。//远程主机使用links访问index1.html文件links 192.168.242.164/index1.html提示没有权限访问index1.html。这是因为不存在允许类型为httpd_t的主体访问类型为admin_home_t的客体文件并进行读取操作的规则。可使用下面的命令查找符合条件的规则:sesearch -s httpd_t -t admin_home_t -c file -p read --allow找不到符合要求的规则条目。要想解决这个问题,要么修改/var/www/html/index1.html文件的安全上下文,将类型修改为httpd_sys_content_t或其它已经被允许访问的类型;要么新建一条规则,允许httpd_t类型的主体对admin_home_t类型的客体文件进行读取操作。这里介绍第一种方式,即修改文件的安全上下文。(2) 使用chcon修改文件的安全上下文//使用chcon命令指定文件上下文中的类型,chcon命令的使用方法如下:chcon <选项> <文件或目录1> [<文件或目录n>]//一种方法是使用-t选项直接指定类型chcon -t httpd_sys_content_t /var/www/html/index1.html//尝试远程访问index1.html文件links 192.168.242.164/index1.html访问成功。说明index1.html文件安全上下文的修改生效了。另一种方法是使用--reference选项复制其它文件的安全上下文//再次将index1.html文件的type修改为admin_home_tchcon -t admin_home_t /var/www/html/index1.htmlchcon --referece=/var/www/html/index.html /var/www/html/index1.html文件的安全上下文修改成功。文件安全上下文中的类型设置成了httpd_sys_content_t,自然可以被httpd进程访问,因此不再使用links验证。(3) 使用restorecon自动为文件设置正确的安全上下文ls -Z /var/www/html/index1.html //查看安全上下文restorecon /var/www/html/index1.html //自动设置安全上下文文件安全上下文修改成功。5、 修改目录的安全上下文通过一个例子了解修改目录及其中文件的安全上下文的方法。(1) 创建测试目录和网页//在/root目录创建目录mkdir /root/myweb///创建网页echo myweb > /root/myweb/myweb.html//测试目录移动到/var/www/html/mv /root/myweb /var/www/html///查看移动后的测试目录的安全上下文ls -dZ /var/www/html/myweb///查看移动后的测试目录中网页的安全上下文ls -Z /var/www/html/myweb/myweb.html//使用links远程访问index.html文件links 192.168.242.164/myweb/myweb.html产生错误的原因和前面的例子一样,都是因为没有相应的selinux规则。像上面一样,我们修改文件的安全上下文中的类型。chcon -t httpd_sys_content_t /var/www/html/myweb/myweb.html
  • [交流分享] EulerOS的安全性考虑
    EulerOS团队尽最大的努力保障客户的安全,并且我们将软件安全视为一个持续发展的过程,执行以下措施:迅速对安全事件做出反应,并提供高品质的安全更新。持续改进EulerOS产品中与安全相关功能。持续促进开源软件的快速成长。尊重开源软件开放性、透明性和可追溯性的安全原则。软件系统的安全是一个复杂的挑战,它涉及到软件编码、用户管理、系统运维等方方面面。同时,随着时代发展和科技进步,新的安全风险会层出不穷。EulerOS安全团队持续地关注和处理软件安全的所有问题,保障客户系统的安全。安全的两个方面 系统软件通常会提供一系列的安全功能,例如身份验证方法、加密、入侵防御/检测、备份等;另外,它还可能包含会影响系统安全性的错误,包括设计缺陷,编程错误和后门等。EulerOS安全团队的目标是及时发现安全相关的错误并提供解决方案,提供强大易用的安全特性,降低安全风险,保障用户系统的安全。安全特性:当前Linux操作系统都具有丰富的安全功能,包括访问控制、入侵防御/检测、灵活可靠的身份验证机制、文件和网络连接加密、文件完整性检查、网络分析工具和监控/日志工具等。还有一些高级工具,帮助您安全地配置和管理您的系统,下载和安装更新包。系统更新包能够修复EulerOS产品中发现的安全漏洞。系统中的安全功能和特性,需要用户去学习如何使用和配置;利用这些功能,用户能够进一步提高默认情况下系统的隐私和安全级别。安全漏洞:软件都是由程序员编写,尽管有很多流程以及质量上的措施,也无法保证完全没有错误。在这些错误中,有一些可能会导致软件或整个系统崩溃,而另外一些则不会对系统造成这么大的影响,通常难以被发现,却可能引入安全风险。本地或远程攻击者能够利用软件的编程错误,将恶意数据导入到软件中,导致应用程序崩溃,拒绝服务,或者执行来自攻击者的代码,对系统程序进行控制。这样的安全漏洞会对用户的系统和数据带来很高的安全风险,攻击者可以删除、篡改或甚至窃取用户的数据,或者通过用户系统执行非法操作。我们为安全所做的努力对EulerOS系统中使用的软件进行仔细的甄别筛选。开发安全相关的工具和应用程序。定期对开源软件进行源代码审计。源代码审计是程序员为实现软件功能而写的详细深入分析。监视安全邮件列表中与软件安全性相关的错误。保持与软件作者、专门从事软件安全的组织和个人的沟通,以便迅速了解和熟悉软件中安全相关故障的技术和组织细节。通过安全更新的形式提供软件安全漏洞的解决方案。以EulerOS安全公告的形式向用户通知错误和安全更新。
  • [技术干货] openEuler 22.03 LTS
    想全面的了解 openEuler 22.03 LTS,可能会发现其所承载的内容十分之多,不易抓住重点。在这里,我将我所了解到的信息,梳理之后整理给大家,以使大家可以在选型、评估和使用时有所参考。版本路线图对于不太熟悉欧拉的同学,我这里简单介绍一下欧拉之前的发展路线:2019 年 12 月 31 日,openEuler 正式宣布开源,其脱胎自华为内部基于 Linux 的积累。四个月后,openEuler 发布了第一个版本 20.03 LTS,它也是一个长期支持版本。其后,openEuler 按照半年一个版本的节奏发布了三个创新版。从创新版开始,华为之外的多个公司、团队、独立开发者参与到了 openEuler 的开发当中。在这几个创新版中,提出、融入了多个值得一提的新特性,如内核热升级、内存分级扩展、千核运算能力、业务混部 CPU 调度算法等核心能力,也从面向云计算逐步拓展到支持边缘计算、嵌入式的全场景领域。这一切,在刚刚发布的 openEuler 22.03 LTS 得到了融会贯通,将在之前的创新版中经过产品环境验证和打磨的优秀特性和创新,有机的组织起来,并形成了一个统一的基础设施基座。跨越式进步根据官方数据,我们看到,这次的 22.03 LTS 和两年前的 20.03 LTS 相比,整体来说内容丰富了许多。比如软件包数量:20.03 LTS 官方提供的软件包, 包括 ISO 镜像中的 2016 个、EPOL 仓库中的 762 个,总计 2778 个;而在 22.03 LTS 中,软件包数量达到了 ISO 4241 个、EPOL 1329 个、oepkgs 13323,总计 18893 个!达到了两年前的 6.8 倍。openEuler 软件包数量:20.03 vs 22.03不只是软件包的数量,欧拉操作系统所支持的硬件架构,也从两年前的 64 位的 ARM 和 x86 架构,又增加了两个:32 位的 ARM 架构,以及国产 CPU 申威架构。曾经连续多次取得超算 TOP500 世界排名第一的中国超算神威·太湖之光中安装的就是 40960 个申威 CPU。通过支持这些架构,欧拉操作系统就可以运行在鲲鹏、英特尔、飞腾、申威、龙芯、兆芯等主流芯片之上。而能在两年间取得这样的大跨步进展,背后是欧拉社区的“疯狂输出”。根据数据,欧拉操作系统当前已有 69891 个提交,仅 22.03 LTS 这个版本就新增了 2300 万行代码。今年以来,欧拉操作系统已经发布了 127 个安全公告,几乎平均每天发布一个。在欧拉操作系统发布以来,其已经创建了 241 个创新项目代码仓,平均每 3.5 天新增一个。而这一切,都是 773 位开发者不断努力的结果。根据欧拉发布的 数据看板),到目前为止,欧拉已经有社区用户 479990 位,其中贡献者 8515 位,单位会员 333 家;合并请求 5 万余,评审 30 万条;成立了近百个 SIG,创建了近 9 千个代码仓。“终始惟一,时乃日新”就此,我问了欧拉社区技术委员会主席胡欣蔚,“欧拉为何能做到这样大的跨越式进步?”他谦逊地表示,这只是“两年的厚积薄发”。当然,能取得这样的进展,也是在欧拉的开发和管理上,将“华为在开发和工程方面的经验”和开源运作的模式进行了结合,并得益于欧拉社区开发的一系列迁移工具。根据公开披露的信息,欧拉操作系统在政府、运营商、金融、能源、交通、互联网等行业已达到规模应用,累计部署超过了 130 万套。2022 年,预计欧拉操作系统将在行业的应用新增超过 200 万套。主要特性内核和底层改进在 openEuler 22.03 LTS 中,采用了经过长期打磨和调校的 Linux 内核 5.10 长期支持版,在这个版本中,华为向上游 Linux 内核社区提交了大量贡献。可以说,这个内核版本是华为的一个“锚定”版本。在此版本上,openEuler 融入了之前三个创新版中经过商业验证的创新特性。欧拉操作系统使用的是 Linux 内核 5.10,但除了 Linux 内核自身的特性之外,欧拉操作系统在内核中还做了十余处创新增强,主要包括用来提升性能的进程调度优化、大页内存性能优化、OOM 内存回收优化、XDP 网络性能优化等。比如它集成了一套新的 QoS 调度机制,使得在线业务可以实现抢占式优先;而 OOM 分级使得离线业务的内存可以在欧拉操作系统中得到极速的回升,这二者结合起来,就提供了对 QoS 最强有力的支撑。又比如 UC 容错使得欧拉在面对硬件可靠性问题的时候更加有力,不再需要简单粗暴的重启,而是可以通过对于具体进程的控制,来实现错误的隔离。除了这些隐蔽但重要的内核改进之外,如今在运维领域已经大量使用了非易失性内存(NVDIMM)存储介质,而传统的 Ext4 文件系统尚缺乏针对性的优化,因为 Ext4 本身是针对旋转式硬盘设计的文件系统。尤其在元数据管理方面,基于现有日志同步机制,其元数据管理开销大,且容易出现写放大问题,无法充分发挥 NVDIMM 优势。欧拉操作系统中集成的 Eulerfs 其创新的元数据软更新技术,减少了元数据同步开销,有效提升文件系统的系统调用性能。在单机应用、云原生分布式应用高性能数据存储场景,可以代替 Ext4、XFS 等文件系统。在这个版本中,还吸收了鸿蒙中的分布式软总线能力,可以实现欧拉设备之间的自发现、自联通,以及欧拉和鸿蒙设备的自发现。云计算强化针对云原生业务混合部署场景,欧拉操作系统中创新的 QAS 算法,是一种适用于云原生场景,业务混合部署的全新调度算法,可以确保在线任务对 CPU 的快速抢占,确定性的调度运行,同时压制离线任务干扰。这些改进适用于对交互类等时延敏感型业务(比如 MySQL、Redis、Nginx 等)和 CPU 消耗重且时延不敏感的业务(如 AI 离线训练)的混合部署。根据欧拉发布会现场的演示,一台服务器部署了欧拉操作系统 22.03 LTS 中的改进技术,而另一台没有。这两台服务器上,都同时运行相同的在线和离线两类业务。通过运行结果可以看到,在一台服务器上的 QPS 是 1.18,而另一台上达到了 2.62,相差了将近一倍;而时延分别是 1.53 秒和0.60 秒,相差也将近一倍。
总条数:113 到第
上滑加载中