আমি CentOS 7 এ অদলবদল সক্ষম করতে পারি না


55

সুতরাং আমি ওটিআরএস ইনস্টল করতে একটি টিউটোরিয়াল অনুসরণ করছি যা ওপেন সোর্স টিকিট রিকুয়েস্ট সিস্টেম। সুতরাং ইনস্টল করার জন্য, এটির প্রয়োজন: 4 গিগাবাইট অদলবদলের স্থান। আমি যে আদেশটি ব্যবহার করেছি তা এখানে:

[root@ip-10-0-7-41 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       50G   14G   37G  27% /
devtmpfs        478M     0  478M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M   13M  484M   3% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1000
[root@ip-10-0-7-41 ~]# fallocate -l 4G /myswap
[root@ip-10-0-7-41 ~]# ls -lh /myswap
-rw-r--r--. 1 root root 4.0G Jul  8 08:44 /myswap
[root@ip-10-0-7-41 ~]# chmod 600 /myswap
[root@ip-10-0-7-41 ~]# mkswap /myswap
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=3656082a-148d-4604-96fb-5b4604fa5b2e
[root@ip-10-0-7-41 ~]# swapon /myswap
swapon: /myswap: swapon failed: Invalid argument

আপনি দেখতে পারেন: এখানে অবৈধ যুক্তি ত্রুটি। এটি সক্ষম করার জন্য আমি অনেক সময় নিরর্থক চেষ্টা করেছি S কেউ দয়া করে আমাকে এই ত্রুটিটি কীভাবে ঠিক করবেন তা বলুন। (আমি এই সেন্টস 7 এডাব্লুএস ইনস্ট্যান্স ইসি 2 তে চালাচ্ছি)

[root@ip-10-0-7-41 ~]# df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
/dev/xvda1 xfs /

এটি কোন ফাইল সিস্টেমে চলছে? কোন সুযোগে বিটিআরএফ?
স্কাইবা

@ শাইইবা হ্যালো, আমি আমার প্রশ্ন সম্পাদনা করেছি। আমি মনে করি ফাইল সিস্টেমটি এক্সএফএস।
ওয়ান

2
এক্সএফএসে এটি ব্যবহার করা আরও ভাল dd। দয়া করে মনে রাখবেন যে সমস্ত ফাইল-সিস্টেম অদলবদলকে সমর্থন করে না বা কমপক্ষে একইভাবে নয়।
স্কাইবা

@ শাইইবা আমি ফাইল সিস্টেমের ধরণ সম্পর্কে খুব ভাল জানতাম না। অনেক ধন্যবাদ.
ওয়ান

উত্তর:


102

সমস্যাটি fallocate(1)হ'ল এটি ioctlsবরাদ্দকে দ্রুত এবং কার্যকর করার জন্য ফাইল সিস্টেম ব্যবহার করে , অসুবিধাটি হ'ল এটি শারীরিকভাবে স্থান বরাদ্দ করে না তবে swapon(2)সিস্কেলকে একটি সত্যিকারের স্থান প্রয়োজন। তথ্যসূত্র: https://bugzilla.redhat.com/show_bug.cgi?id=1129205

আমি আমার বাক্সেও আগে এই সমস্যার মুখোমুখি হয়েছি। সুতরাং পরিবর্তে ব্যবহার করার পরিবর্তে fallocate, আমি ddলিঙ্কটি পরামর্শ হিসাবে ব্যবহার করেছি

sudo dd if=/dev/zero of=/myswap count=4096 bs=1MiB

এবং সঙ্গে এগিয়ে চলন্ত chmod, mkswap& swaponকমান্ড। বিঙ্গো! এটা কাজ করেছে.


1
অদ্ভুত, একটি ফ্যালোকট'এড অদলবদল উবুন্টু 16.04.3 এলটিএস-এ আমার জন্য দুর্দান্ত কাজ করেছে তবে এটি "স্বপন ব্যর্থ হয়েছে: রেড হ্যাট এন্টারপ্রাইজ লিনাক্স সার্ভারে অবৈধ যুক্তি" দিয়ে .4.৪ (মাইপো) প্রকাশ করে। উপরে প্রদত্ত ডিডি কমান্ডটি রেডহ্যাটে সত্যই কাজ করে। দুটি ওএসের মধ্যে অবশ্যই কিছু আলাদা থাকতে হবে যা ফলোকেটকে উবুন্টুতে কাজ করতে দেয়।
ডেভিডিয়ান 1024

সমাধান CentOS 7.5
NerdOfCode

ddআরও অনেক বেশি কাজ করছে বলে মনে হচ্ছে time dd if=/dev/zero of=/myswap count=4096 bs=1MiB14.003 সেকেন্ড time fallocate -l 4G /swap3সময় লাগে যেখানে 0.018 সেকেন্ড লাগে, তবে তারা একই আকারের ফাইল তৈরি করে। আমি অনুমান করছি যে fallocateশূন্যগুলিতে সেইভাবে অনুলিপি করা হয় না ddএবং swaponসেই জিরোগুলির প্রয়োজন।
ড্যানিয়েল ওয়াইগার্ট

swapon: /swapfile: read swap header failed: Invalid argumentswapon /swapfileসেন্টোস pu পুতুলতাবিবাহ সার্ভারে চেষ্টা করার পরে এই ত্রুটিটি পেয়েছে
ব্রায়ান থমাস

@ ব্রায়ান থমাস এই শব্দটি মনে হচ্ছে আপনি ডিডি দিয়ে তৈরি করার পরে আপনি mkswap চালাতে ভুলে গেছেন।
jblaine

17

এই পদক্ষেপগুলি অনুসরণ করুন, এটি ডিজিটাল ওশনের ফোঁটাগুলিতে কাজ করে। আমি পরীক্ষা করেছি। আপনার প্রয়োজন অনুসারে 4096 পরিমাণ পরিবর্তন করুন

yum install nano -y

sudo dd if=/dev/zero of=/swapfile count=4096 bs=1MiB
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

sudo nano /etc/fstab

এই লাইন যুক্ত করুন:

/swapfile   swap    swap    sw  0   0

এই আদেশটি চালান

sudo sysctl vm.swappiness=10

sudo nano /etc/sysctl.conf

এই লাইন যুক্ত করুন

vm.swappiness = 10
vm.vfs_cache_pressure = 50

অদলবদলের আকার যাচাই করতে

swapon --summary
free -h

2
আমার ddআদেশটি dd if=/dev/zero of=/swapfile count=4 bs=1GiBহ'ল কারণ আমার পক্ষে এটি করতে পারলে গিবিবাইটে মেবিবাইট গণনা করে বিরক্ত করা ddযায় না। আপনি কি জানেন যে যুগে যুগে লোকেরা এটি কিবিবাইটে প্রকাশ করে এবং হাতে গননা করে যে গিবিবাইটে? অবিশ্বাস্য!
আমেদী ভ্যান গ্যাস

@ অ্যামেডিভ্যানগ্যাস আপনাকে ডিডি কমান্ডের সংস্করণে আসলে 1GiB মেমরির প্রয়োজন আছে এবং আপনার কাছে এত ফ্রি মেমরি না থাকলে কমান্ডটি ব্যর্থ হবে।
ফাবিয়ানো

@ ফাবিয়ানো হ্যাঁ এবং? আপনার কথাটি ...?
আমেদী ভ্যান গ্যাস

2
@ আমেডিভ্যানগ্যাস আমার বক্তব্যটি হ'ল আপনি যদি কেবল এমআইবি এবং জিআইবি গণনা করে বিরক্ত করতে চান bs=না তবে তা করার উপযুক্ত উপায় নয় কারণ এর অনিচ্ছাকৃত পরিণতি যেমন আঘাতের দক্ষতা এবং সম্ভবত বেশিরভাগ স্বল্প ব্যয়ের হোস্টিংয়ে কাজ না করে। আপনি শুধু অলস করেন, ব্যবহার count_bytesদিন ddআপনার জন্য উভয় গণিত এবং একটি দক্ষ ব্লক আকারের পছন্দসই করুন: dd if=/dev/zero of=/swapfile count=4GiB iflag=count_bytes=)
Fabiano

iflag=count_bytesআপনার মন্তব্যে একটি দুর্দান্ত উন্নতি। এবং আমি অলস না, আমি পঠনযোগ্যতা সম্পর্কে যত্নশীল। 6 মাসের মধ্যে যখন আমি আমার স্ক্রিপ্টটি আবার পড়ি (বা পরবর্তী পরিচালক যদি উপস্থিত হয়) তখন পাঠককে বুঝতে হবে কী চলছে। এটি কেবল কম্পিউটার নয় যারা কোড পড়েন, মানুষেরাও কোড পড়েন!
আমেদী ভ্যান গ্যাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.