下面给你提供一个修改注册表的文件,你把它复制到文本文件里并把扩展名由原来的TXT 改成reg 然后双击运行就可以了
下面就是代码:
Windows Registry Editor Version 500
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Lsa]
"restrictanonymous"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"restrictanonymous"=dword:00000000
; 以上两行在系统中的位置是:本地安全策略-安全选项-网络访问:不允许SAM帐户和共享
; 的匿名枚举。系统默认值是:已停用。
; 解说: *** 作系统默认:利用ipc$通道可以建立空连接,匿名枚举出该机有多少帐户。显然
; 有一定的安全隐患。本系统已设为不允许空连接了。以此提高单机拨号上网的安全性。
; 负面影响是局域网不能互访了。要更改一下才可以解决。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"limitblankpassworduse"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Lsa]
"limitblankpassworduse"=dword:00000000
; 以上两行在系统中的位置是:本地安全策略--安全选项--帐户:使用空白密码的本地帐户
; 只允许进行控制台登录。系统默认值是:已启用。
; 解说:很多人的帐户是不加密码的。这样,当局域网中别的电脑访问本机时,会d出错误提示:
; 登录失败:用户帐户限制………。这是XP系统的一条安全策略造成的,防止别人趁你空密码时
; 进入你的电脑。如果你觉得无所谓,不必做这些限制,那就把它设为:已停用。
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\Count]
"HRZR_EHAPCY"=hex:0C,00,00,00,26,00,00,00,F0,FB,E5,52,64,95,C6,01
"HRZR_EHAPCY:"P:\JVAQBJF\flfgrz32\sverjnyypcy",Jvaqbjf 防火墙"=hex:0C,00,00,00,08,00,00,00,F0,FB,E5,52,64,95,C6,01
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]
"445:TCP"="445:TCP:LocalSubNet:Enabled:@xpsp2resdll,-22005"
"137:UDP"="137:UDP:LocalSubNet:Enabled:@xpsp2resdll,-22001"
"138:UDP"="138:UDP:LocalSubNet:Enabled:@xpsp2resdll,-22002"
"139:TCP"="139:TCP:LocalSubNet:Enabled:@xpsp2resdll,-22004"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Epoch]
"Epoch"=dword:000001ED
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Providers]
"LogonTime"=hex:E8,31,8E,4F,64,95,C6,01
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]
"445:TCP"="445:TCP:LocalSubNet:Enabled:@xpsp2resdll,-22005"
"137:UDP"="137:UDP:LocalSubNet:Enabled:@xpsp2resdll,-22001"
"138:UDP"="138:UDP:LocalSubNet:Enabled:@xpsp2resdll,-22002"
"139:TCP"="139:TCP:LocalSubNet:Enabled:@xpsp2resdll,-22004"
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Epoch]
"Epoch"=dword:000001ED
; 以上数值对应系统中的位置:控制面板--防火墙--例外--文件和打印机共享。系统默认:不选。
; 解说:所有的策略都设置好了,局域网依然不能访问,提示:您没有权限使用网络资源,找
; 不到网络路径!呵呵,真是令人火冒三丈!其实XP还有一道关卡,就是防火墙,必须要经过
; 防火墙的允许才行。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"forceguest"=dword:00000001
; 以上数值对应系统中的位置是:控制面板--管理工具--本地安全策略--本地策略--安全选项,
; 网络访问:本地帐户的共享和安全模式:仅来宾-本地用户以来宾份验证。这时,当局域网
; 其他机访问本机时,不会d出对话框,就可以直接进入。在家庭网等完全可以信任的区域,
; 建议使用这种方式。Ubuntu系统不具备类似于DOS的Sleep命令,但是您可以使用Linux提供的替代命令,例如‘sleep’ 和 ‘pause’命令来实现类似的功能。您可以使用sleep命令来暂停当前 shell 的执行一段时间,或者使用pause命令来暂停当前Shell的执行,直到用户按下回车在AB台机子里
开始-运行-regedit-找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
把右面里的restrictanonymous的值改成0,然后重启电脑试试吧
------------------------------
局域网中无法访问的解决方法
在局域网内安装了Windows XP的电脑不能与安装了Windows 98的电脑互相访问,安装了Windows XP的电脑与安装了Windows XP的电脑也不能互相通信。在工作站访问服务器时,工作站的“网上邻居”中可以看到服务器的名称,但是点击后却无法看到任何共享内容,或者提示找不到网络径、无权访问等问题,归纳为以下几点:
在XP首次使用的时候要在网上邻居的属性里面新建一个网络连接进行网络安装向导。
1、检查计算机之间的物理连接。
网卡是网络连接的基本设备,在桌面计算机中,每个网卡后面的指示灯应该是亮的,这表示连接是正常的。如果不亮,请检查集线器或交换机是打开的,而且每个客户端连接的指示灯都是亮的,这表示链接是正常的。接下来检查网线的水晶头是否接触良好。
2、确保所有计算机上都安装了TCP/IP,并且工作正常。
在Windows XP中默认安装了TCP/IP。但是,如果出了网络问题想卸载后重新安装TCP/IP就不容易了:在“本地连接”属性中显示的此连接使用下列项目列表中单击Internet协议(TCP/IP)项,您将发现卸载按钮不可用(被禁用)。
这是因为传输控制协议/Internet协议(TCP/IP)堆栈是Microsoft XP/ 2003的核心组件,不能删除。在这种情况下,如果需要重新安装TCP/IP以使TCP/IP堆栈恢复为原始状态。可以使用NetShell实用程序重置TCP/IP堆栈,使其恢复到初次安装作系统时的状态。方法是:在命令提示符后键入以下命令,然后按ENTER键:netsh int ip reset c:\resetlogtxt,其中,Resetlogtxt记录命令结果的日志文件,一定要指定,这里指定了Resetlogtxt日志文件及完整路径。运行此命令的结果与删除并重新安装TCP/IP协议的效果相同。
3、使用ping命令测试网络中两台计算机之间的连接:
ping其它计算机IP,在命令提示处,键入ping xxxx(其中xxxx是另一台计算机的IP地址),然后按ENTER键。应该可以看到来自另一台计算机的几个答复,如:
Reply from xxxx:bytes=32 time<1ms TTL=128
如果没有看到这些答复,或者看到"Request timed out",说明本地计算机可能有问题。如果ping命令成功执行,那么您就确定了计算机可以正确连接,可以跳过下一步。如果没有看到这些答复,或者看到"Request timed out",说明本地计算机可能有问题。PING本地IP,如果看到"Request timed out",说明本地计算机可能有问题。
4、使用ping命令测试网络中名称解析是否正常
ping computername,其中computername是远程计算机的名称。通过ping命令用名称测试计算机连接。确定计算机的名称的方法是:在命令提示处,输入SYSTEMINFO。或者在桌面上右击我的电脑-属性,然后单击计算机名称选项卡。如果看到该命令的成功答复,说明您在计算机之间具有基本连接和名称解析。名称解析跟NETBIOS密切相关,看下面的步骤。
5、正确安装网络组件
首先右击网上邻居-属性,选择要共享的网卡。把IP设置在局域网的同一个网段上。比如1921681X网段。然后看一下TCP/IP的高级属性中,是否开启NETBIOS。
在利用WINNT40构建的网络系统中,对每一台主机的唯一标识信息是它的NetBIOS名,系统是利用WINS服务、信息广播方式及Lmhost文件等多种模式将NetBIOS名解析为相应IP地址,从而实现信息通讯。
在内部网络系统中(也就是通常我们所说的局域网中),利用NetBIOS名实现信息通讯是非常方便、快捷的。但是在Internet上对一台主机的唯一标识信息是它的FQDN格式的域名(163com),在Internet是利用DNS标准来实现将域名解析为相应IP地址,WIN2K支持动态DNS,运行活动目录服务的机器可动态地更新DNS表。
WIN2K网络中可以不再需要WINS服务,但是WIN2K仍然支持WINS,这是由于向后兼容的原因。目前,大多数网络是混合网,既有Win98等系统,又有WINXP/WIN2K等系统,因此需要在TCP/IP协议上捆绑NETBIOS解析计算机名。
查看是否选定“文件和打印服务”组件,如果已将其取消选中,“浏览服务”将不绑定到NetBIOS接口。成为备份浏览器并且没有启用“文件和打印共享”的基于Windows的计算机无法将浏览列表与客户机共享。任何将要包括在浏览列表中的计算机也都必须启用“文件和打印共享”。
6、启用打印与文件共享。
在网上邻居和本地连接属性里可以看到是否安装了打印机与文件共享。验证:如果在网上邻居中看不到自己的机器,说明你没有安装打印机与文件共享。
7、启动"计算机浏览器"服务
计算机浏览器"服务在网络上维护一个计算机更新列表,并将此列表提供给指定为浏览器的计算机。如果停止了此服务,则既不更新也不维护该列表。
WIN2K/XP要确保计算机浏览服务正常启动。打开计算机管理->服务和应用程序->服务,在右窗中确保“Computer Browser”没有被停止或禁用。
8、运行网络标识向导
我的电脑选择“属性”,然后单击“计算机名”选项卡单击“网络 ID”按钮,开始“网络标识向导”:单击“下一步”,选择“本机是商业网络的一部分,用它连接到其他工作着的计算机”;单击“下一步”,选择“公司使用没有域的网络”;单击“下一步”按钮,然后输入你的局域网的工作组名,再次单击“下一步”按钮,最后单击“完成”按钮完成设置。
9、Win2k安装NetBEUI协议
在Win2k中NetBEUI协议是一个高效协议在局域网中使,因此必须安装此协议:
网上邻居->属性->本地连接->属性---->安装------>协议------->NetBEUI Protocol
10、起用Guest(来宾)帐户
Windows XP的Guest帐户允许其他人使用你的电脑,但不允许他们访问特定的文件,也不允许他们安装软件。对Windows XP Home Edition计算机或工作组中的Windows XP Professional计算机的所有网络访问都使用来宾帐户。使用net user guest确保为网络访问设置了来宾帐户,如果该帐户是活动的,命令输出中会出现一行类似下面这样的内容:Account active Yes;如果该帐户不是活动的,请使用下面的命令授予来宾帐户网络访问:
net user guest /active:yes
或者打开控制面板->用户帐户或者在管理工具->计算机管理->本地用户和组中打开Guest帐户
11、允许Guest(来宾)帐号从网络上访问。
在运行里输入gpeditmsc,d出组策略管理器,在‘计算机配置-Windows设置-本地策略-用户权利指派’中,有“拒绝从网络访问这台计算机”策略阻止从网络访问这台计算机,如果其中有GUEST帐号,解决办法是删除拒绝访问中的GUEST帐号。
12、防火墙:
确保WINXP自带的防火墙没有开启,打开本地连接属性->高级,关掉Internet连接防火墙。如果使用了第三方的防火墙产品,参考其使用手册,确保防火墙没有禁止以下端口的通讯:UDP-137、UDP-138、TCP-139、TCP-445(仅WIN2K及以后的作系统)。
Windows XP最新的SP2补丁对ICF做了很大的改进,功能更强大了,ICF有了自己的设置项,安装SP2后,默认情况下,启用ICF防火墙,不允许任何外部主动连接,即使是本地的应用程序要访问网络也需要在许可列表中做设置。
但是防火墙阻断正常的网络浏览服务通讯,结果是别人在网上邻居中看不到你的计算机,有没有两全其美的办法在开启防火墙的前提下允许浏览服务。
办法是,如果开启了ICF,打开属性,在服务这栏,选择添加,添加服务的对话框共有四个编辑框,最上边是描述服务名称,以便于记忆,从上到下第二个是应用服务的IP地址或名称,输入127001表示本机。
下面连个是内外端口号,旁边的tcp/udp标示这个端口是udp连接还是tcp连接。
按照下面的表格输入3个服务
名称 协议 端口
NetBIOS Name Service UDP 137
NetBIOS Datagram Service UDP 138
NetBIOS Session Service TCP 139
137/UDP -- NetBIOS名称服务器,网络基本输入/输出系统(NetBIOS)名称服务器(NBNS)协议是TCP/IP上的NetBIOS (NetBT)协议族的一部分,它在基于NetBIOS名称访问的网络上提供主机名和地址映射方法。
138/UDP -- NetBIOS数据报,NetBIOS数据报是TCP/IP上的NetBIOS (NetBT)协议族的一部分,它用于网络登录和浏览。
139/TCP -- NetBIOS会话服务,NetBIOS会话服务是TCP/IP上的NetBIOS (NetBT)协议族的一部分,它用于服务器消息块(SMB)、文件共享和打印。
13、检查RPC、Plug and Play服务已启动,检查相应的系统文件夹的权限,重新注册以下的动态链接库:
regsvr32 netshelldll
regsvr32 netcfgxdll
regsvr32 netmandll
14、设置帐号和密码
由于WinNT内核的作系统,在访问远程计算机的时候,好像总是首先尝试用本地的当前用户名和密码来尝试,可能造成无法访问,在这里把用户密码添加进去就可以了。
15、多种方法访问“网络计算机”
例如要打开网络中名为“Killer”的计算机,其IP地址为19216818,如果你不清楚其它机器的IP地址,你可以使用“PING计算机名”来获得它的IP地址。
用计算机名访问,NETBIOS提供的服务。点击“开始”菜单,单击“运行”,在地址栏输入“\Killer”,单击“确定”。
用IP地址访问,在地址输入栏中输入“\19216818”,单击“确定”。
用搜索计算机的方法访问,计算机更新列表需要时间,搜索计算机可以加快更新列表。点击“网上邻居”右键中的“搜索计算机”,输入计算机名,点击“立即搜索”,就可以看到你要访问的计算机。直接双击右边计算机名就可以打开它了。
用映射驱动器的方法访问,进入DOS方式,输入“NET VIEW \killer”,回车�这是查看计算机Killer上有哪些共享文件夹,如D。再输入NET USE Z:\Killer\D�将计算机IBM-ZB共享的文件夹D映射为H:盘,在命令提示符下键入“Z:”。你会发现你已经连到Killer计算机上了。1、如何导出导入osdmap
11先停掉坏的osd,以及一个好的osd(因为ceph-objectstore-tool执行时需要停止osd),然后执行导出导入即可
命令例子:其中84是好的osd,85是有问题的osd
ceph-objectstore-tool --op get-osdmap --epoch 145039 --data-path /data1/ceph-osd/ --journal-path /var/log/ceph/ceph-84/journal --type filestore --file osdmap145039
ceph-objectstore-tool --op set-osdmap --epoch 145039 --data-path /data2/ceph-osd/ --journal-path /var/log/ceph/ceph-85/journal --type filestore --file osdmap145039
PS:其中145039为对应的版本号,data-path与journal-path填写自己osd对应的路径
2、找到正确的epoch版本
这个要通过报错的osd日志查看,在启动的时候,osd会加载一个epoch版本A,这个版本是它正在执行的,缺少的epoch版本在它之前。然后在 dump of recent events中发现已经执行的epoch版本B,以及ecoch版本C。将在max(B,C)到A之间的版本都导入一遍(也可以导入一个版本,启动一次观察,就是太麻烦了)。我日志中A=145068,B=145011,C=145012,所以我把145013到145067之间所有的ecoph版本都导入进去了,结果正常启动了。我的日志入下图
1、产生原因 :
2个osd之间的osdmap版本如果相差过大(相差可能在50左右),会导致2个osd通讯的时候报wrong node。如果偶尔出现一次wrong node,那么问题不大,因为osd某个 *** 作卡主了,然后恢复获取了最新版本的osdmap。如果osd日志一直在报,说明有osd同步osdmap出现问题,会导致osd down掉,心跳超时(可能),甚至出现osd大量吃内存,导致服务器挂掉。日志如下:
2、查看osd的osdmap版本
通过命令查看:ceph daemon osdxx status ——xx标记对应的osd编号
命令结果例子:
{
"cluster_fsid": "df181181-2154-4816-a2b7-d6eae79980fb",
"osd_fsid": "d5edacd3-cee7-45eb-90df-e381d8684dfb",
"whoami": 15,
"state": "active",
"oldest_map": 92570,
"newest_map": 158146,
"num_pgs": 2105
}
其中newest_map表示osd的最新版本号
3、查看集群的osdmap版本号
命令:ceph -s
这里:178170时最新版本号
4、确定osd版本是否有问题
多次间隔执行命令ceph daemon osdxx status 查看osd版本号,正确状态如下:
41、查询出来的版本号一直保持跟集群版本号一致
42、小于集群版本号,但是在不停增大,最终会达到集群版本号
5、出现osd不更新osdmap解决办法
到目前为止,我没有找到osd不更新osdmap的根本原因,我使用过ceph daemon osdxx dump_blocked_ops 查看是否有阻塞的 *** 作并解决阻塞,但是依然不行,即使返回没有阻塞,还是不更新。可能可以让osd重新更新的方式:
1、将对应的osd out出集群(osd还是up的),过一阵观察一下版本号(我的就是这样回复的)
2、重启osd
1、问题日志
2、解决方式:
1、检查服务器时间是否一致
2、检查集群中的keyring与本地osd的keyring是否一致:
使用命令:
ceph auth list从mon中获取所有osd的keyring,
cat /var/lib/ceph/osd/ceph-xx/keyring获取本地osd的keyring
3、去掉验证 ,重启所有的mon、osd,修改cephconf中的如下参数为
auth_cluster_required = none
auth_service_required = none
auth_client_required = none
1、问题日志
2、解决方式
1、查看服务器时间与服务器网络(我的不是这个问题)
2、一般心跳超时是其他问题引起的,这里可以先调大心跳超时时间(我调大了心跳超时,解决了其他问题之后,就没有心跳超时了),修改配合文件cephconf的参数
mon_osd_report_timeout = 1800
filestore_op_thread_suicide_timeout = 1800
filestore_op_thread_timeout = 600
osd_heartbeat_grace = 600
osd_op_thread_suicide_timeout=1800
osd_op_thread_timeout=36000
这个配置可以先放到[global],等解决了问题,在去掉,也可以根据实际情况,自己调整参数
1查看日志查看osd卡在哪里
日志调整级别:修改配置文件cephconf参数,添加debug_osd=10(15/20),数值越高,打印越多。如果已经启动osd,想更改日志级别,可以通过命令:ceph tell osdxx injectargs --debug-osd 5
2、根据日志信息解决问题
我是卡在了load_pgs上,因为整个集群状态不对,而pg数量又很多,加载很慢,这时候需要考虑服务器压力,可以一个一个慢慢启动,不要一下子启动完。
1、问题原因
incomplete状态表示:Peering过程中由于无法选出权威日志或者通过choos_acting选出的acting不足以完成数据恢复,(例如针对纠删码,存活的副本数小于k值)等,导致Peering无法正常完成。即pg元数据丢失,无法恢复pg状态
2、解决问题
1、使用ceph-objectstore-tool工具将incomplete状态的pg标记为complete
2、 *** 作步骤:
*** 作前提:设置集群flag:noout nodown noup noin PS:这里的目的是为了不让pg分布变化,我因为osd都起来了,只设置了noout nodown
第一步:通过命令ceph pg dump_stuck |grepincomplete >incompletetxt 从集群中导出incomplete状态的所有pg
第二步:通过第一步知道了pg所在的2个osd在哪里,stop这2个osd
第三步:对这2个osd上的pg通过命令做标记,命令如下
ceph-objectstore-tool --data-path /data4/ceph-osd/ --journal-path /var/log/ceph/ceph-15/journal --type filestore --pgid 9ea8 --op mark-complete
ceph-objectstore-tool --data-path /data8/ceph-osd/ --journal-path /var/log/ceph/ceph-91/journal --type filestore --pgid 9ea8 --op mark-complete
第四步:启动这2个osd(启动顺序没有关系)
第五步:观察集群中incomplete是否少了
第六步:重复第二步以及之后的 *** 作,直到incomplete没有
3、特别说明
31、标记complete的过程,可能给导致集群degraded、misplaced增加,这是正常的
32、原因:因为我在标记的过程中,缺少了导入导出pg步骤。我这里没 *** 作导入导出是因为pg数量有点多,而且pg比较大,导入导出会让2个osd停太久了,而且我觉得让集群自己恢复比较好
33、导入导出pg命令:
ceph-objectstore-tool --data-path /data3/ceph-osd/ --journal-path /var/log/ceph/ceph-2/journal --type filestore --pgid 415d5 --op export --file /data10/55/pg415d5
ceph-objectstore-tool --data-path /data8/ceph-osd/ --journal-path /var/log/ceph/ceph-5/journal --type filestore --pgid 415d5--op import --file /data10/55/pg415d5
选择一个osd为主,另一个为副,将一个导入到另外一个pg,导入导出需要停止osd。以上是将osd2中的415d5导入到osd5中
1、如果能重启对应pg的osd,那是最好的,问题自然解决
2、如果osd对应的数据盘损毁或者其他原因无法启动这个osd
第一步:将这个osd删除,命令
ceph osd crush reweight osdxx 0
ceph osd out osdxx
ceph osd crush remove osdxx
ceph osd rm osdxx
ceph auth del osdxx
第二步:清理当前osd的硬盘或者新加一个硬盘
第三步:新启动一个编号相同的osd
第四部:重复上面的 *** 作,处理掉所有有问题的osd,如果还有down,没事,等集群自己恢复处理(我就是启动了一个新的osd,有pg处理incomlepte+down,我标记完了incomlepte,down就自己消失了)
1、原因
这个状态的PG没有被 ceph-osd 更新,表明存储这个 PG 的所有节点可能都 down 了。拥有 PG 拷贝的 OSD 可能会全部失败,这种情况下,那一部分的对象存储不可用, monitor 也就不会收到那些 PG 的状态更新了,这些pg就被标记为stale
2、解决方法
第一种:osd down了之后能正常起来,那只要启动
第二种:
1使用命令ceph pg dump |grep stale找出stale的pg
2使用命令ceph pg force_create_pg $pg_id,这时pg状态变为creating
3重启集群中所有的osd
3、特殊说明
我当时是第二种情况,然后我按上面的步骤 *** 作了。结果所有的osd启动都卡主了。我猜测可能原因:当时我force_create_pg的数量有3000个,这个数量有点多,所以osd就大量卡住了,很久很久才能启动,可能有几个小时。所以这个 *** 作要慎重,建议如下
1、这个stale的pg最后处理
2、一次不要force_create_pg太多,osd重启时,一个重启成功之后,在重启另一个
这个比较简单,直接执行命令:ceph pg repair $pg_id 修复
说明集群中osd有问题,需要解决osd问题,我就是有3个osd问题,我out了这3个osd,这2个状态就很快消失了
1、问题发现 :ceph -s 或者mon进程死掉看到日志
2、产生原因
产生了大量的epoch,导致mon的storedb的数据极速膨胀。这个是我集群出现问题之后才出现的。我之前集群正常时没有这个现象。不知道等集群正常之后,会不会自己恢复正常。
3、解决方法
第一种:对数据进行压缩,使用命令 ceph tell monceph163 compact (ceph163是我mon的名称) 。
第二种:使用ceph-mon -i HOST --compact进行压缩启动 ,这里的host我使用的是ceph163,主机名称
说明:不管使用哪一种,都要注意一点: *** 作压缩时,硬盘都会先扩大然后再缩小的,所以要留足空间。第二种的优势在于可以使修改cephconf中的参数mon_data=/data10/ceph153路径生效。我后来的mon数据太大了,我就更新路径到了数据盘:只要把对应的mon数据存数据mv到其他目录即可
第三种:等集群正常了,修改mon的配置参数试试(未验证,参数可以调小一些)
mon_min_osdmap_epochs=500
mon_max_pgmap_epochs=500
mon_max_mdsmap_epochs=500
4、特别注意:
默认当mon所在存储应硬盘剩余5%空闲时,mon进程会自杀。
将对应osd节点设置为out即可(osd进程依然存在),它会自动移除数据并把对应数据盘的数据删除,等到数据移除完毕,正常关闭删除osd即可
命令:ceph osd out osdxx
当需要迁移服务器,需要关闭集群时,先设置ceph osd set nodown ceph osd set noup ceph osd set noout ceph osd set nobackfill ceph osd set norecover 保持集群不变,然后关闭各个osd,关闭mon,关闭rgw。
ceph osd set norebalance
——禁止集群pg做从均衡,当出现问题时,可以设置,用于排查问题
ceph osd set nobackfill
——禁止修复数据 backfill,当出现问题时,我们暂时不想修复数据,可以使用,配合nobackfill 一起使用
ceph osd set norecover
——禁止修复数据 recover,当出现问题时,我们暂时不想修复数据,可以使用,配合nobackfill 一起使用
ceph osd set nodown
——当集群出现问题,osd一会儿up,一个down的时候,可以使用这个命令,禁止osd down
ceph osd set noup
——当集群出现问题,osd一会儿up,一个down的时候,可以使用这个命令,禁止osd up
ceph osd set noout
——禁止集群中的osd自动因为长时间down,而out
ceph osd set nodeeep-scrub
——不做深度处理取消使用对应的unset即可,比如ceph osd unset noout
ceph osd out osdxx 设置单个osd的状态为out
ceph osd in osdxx 设置单个osd的状态为in
ceph osd down osdxx 设置单个osd的状态为down
ceph tell osdxx injectargs --debug-osd 20 实时修改osdxx的日志级别,不需要重启osd
ceph tell monxx injectargs --debug-mon 20 实时修改mon的日志级别,不需要重启mon
ceph tell osd injectargs --osd_recovery_sleep 1 单位秒,刚开始设置为1,怕服务器有压力,观察之后可以去掉设置为0
ceph tell osd injectargs --osd_max_backfills 1 调整恢复线程数,可以根据实际情况调整
ceph tell osd injectargs --osd_recovery_op_priority 60 调整恢复线程的级别
ceph daemon osdxx status 查看osdxx的状态,主要看osdmap版本号
ceph pg dump 查看所有的pg信息
ceph pg dump_stuck stale 查看pg状态为stale的数据
ceph pg dump_stuck inactive查看pg状态为inactive的数据
ceph pg dump_stuck unclean查看pg状态为unclean的数据
ceph -s 查看集群情况
ceph osd tree 查看osd状态树
ceph health detail 查看集群健康详情
ceph pg pg_id query 查看某个pg信息
ceph osd getmap -o osdmapbin查看osdmap图
ceph-dencoder type OSDMap import osdmap_197 decode dump_json 将osdmap导出成json格式redis cluster配置好,并运行一段时间后,我们想添加节点,或者删除节点,该怎么办呢。
一,redis cluster命令行
查看复制打印
//集群(cluster)
CLUSTER INFO 打印集群的信息
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。
//节点(node)
CLUSTER MEET <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点。
CLUSTER REPLICATE <node_id> 将当前节点设置为 node_id 指定的节点的从节点。
CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。
//槽(slot)
CLUSTER ADDSLOTS <slot> [slot ] 将一个或多个槽(slot)指派(assign)给当前节点。
CLUSTER DELSLOTS <slot> [slot ] 移除一个或多个槽对当前节点的指派。
CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
CLUSTER SETSLOT <slot> NODE <node_id> 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
CLUSTER SETSLOT <slot> MIGRATING <node_id> 将本节点的槽 slot 迁移到 node_id 指定的节点中。
CLUSTER SETSLOT <slot> IMPORTING <node_id> 从 node_id 指定的节点中导入槽 slot 到本节点。
CLUSTER SETSLOT <slot> STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。
//键 (key)
CLUSTER KEYSLOT <key> 计算键 key 应该被放置在哪个槽上。
CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的键值对数量。
CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 个 slot 槽中的键。
这些命令是集群所独有的。执行上述命令要先登录
查看复制打印
[root@manage redis]# redis-cli -c -p 6382 -h 19216810220 //登录
19216810220:6382> cluster info //查看集群情况
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:8
cluster_my_epoch:4
cluster_stats_messages_sent:82753
cluster_stats_messages_received:82754
二,添加节点
1,新配置二个测试节点
查看复制打印
# cd /etc/redis
//新增配置
# cp redis-6379conf redis-6378conf && sed -i "s/6379/6378/g" redis-6378conf
# cp redis-6382conf redis-6385conf && sed -i "s/6382/6385/g" redis-6385conf
//启动
# redis-server /etc/redis/redis-6385conf > /var/log/redis/redis-6385log 2>&1 &
# redis-server /etc/redis/redis-6378conf > /var/log/redis/redis-6378log 2>&1 &
2,添加主节点
# redis-tribrb add-node 19216810219:6378 19216810219:6379
注释:
19216810219:6378是新增的节点
19216810219:6379集群任一个旧节点
3,添加从节点
# redis-tribrb add-node --slave --master-id 03ccad2ba5dd1e062464bc7590400441fafb63f2 19216810220:6385 19216810219:6379
注释:
--slave,表示添加的是从节点
--master-id 03ccad2ba5dd1e062464bc7590400441fafb63f2,主节点的node id,在这里是前面新添加的6378的node id
19216810220:6385,新节点
19216810219:6379集群任一个旧节点
4,重新分配slot
查看复制打印
# redis-tribrb reshard 19216810219:6378 //下面是主要过程
How many slots do you want to move (from 1 to 16384) 1000 //设置slot数1000
What is the receiving node ID 03ccad2ba5dd1e062464bc7590400441fafb63f2 //新节点node id
Please enter all the source node IDs
Type 'all' to use all the nodes as source nodes for the hash slots
Type 'done' once you entered all the source nodes IDs
Source node #1:all //表示全部节点重新洗牌
Do you want to proceed with the proposed reshard plan (yes/no) yes //确认重新分
新增加的主节点,是没有slots的,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)