SSD Nodes Learn 🎉 VPS $5.50/నెల నుండి

ollama pull vs run: models ఎక్కడ save అవుతాయి

ollama pull model ను download చేసి ఆగిపోతుంది; ollama run chat తెరుస్తుంది. Files ఎక్కడ ఉంటాయి, VPS root disk ఎందుకు నిండుతుంది, వాటిని ఎలా move చేయాలో తెలుసుకోండి.

ollama pull vs ollama run

ollama pull ఒక model ను download చేసి ఆగిపోతుంది. ollama run model అందుబాటులో లేకపోతే మాత్రమే దాన్ని download చేసి, తరువాత memory లోకి load చేసి interactive chat ను తెరుస్తుంది. Download రెండింటిలోనూ ఒకే విధంగా జరుగుతుంది. Files కూడా ఒకే చోట save అవుతాయి. తరువాత కొనసాగేది run మాత్రమే.

ఏ command script లో ఉండాలి, ఏది keyboard వద్ద ఉపయోగించాలి అనే విషయాన్ని ఈ ఒక్క తేడానే నిర్ణయిస్తుంది.

ollama pull gemma4
ollama run gemma4
ollama run gemma4 "Reply with one word: ready"

మొదటి పంక్తి model ను fetch చేసి exit అవుతుంది. అందువల్ల provisioning మరియు systemd unit లో దీనిని సురక్షితంగా ఉపయోగించవచ్చు. రెండవది chat session ను తెరుస్తుంది. దాని నుంచి బయటకు రావడానికి /bye అని type చేయండి లేదా Ctrl+D నొక్కండి. మూడవది ఒకే prompt ను పంపి, సమాధానాన్ని print చేసి exit అవుతుంది. Session కాకుండా సమాధానం అవసరమైనప్పుడు script కు కావాల్సిన రూపం ఇదే. Model names తరచుగా మారుతుంటాయి. కాబట్టి ఇక్కడ gemma4 ను placeholder గా పరిగణించండి. August 2026 నాటికి అధికారిక Ollama documentation ఉపయోగించే ఉదాహరణ ఇదే. Library లోని ఏ tag అయినా ఇదే విధంగా పనిచేస్తుంది.

మొదటి ollama run ఆగిపోయినట్లు ఎందుకు కనిపిస్తుంది

కొత్త VPSపై మొదటి run ఎలాంటి output లేకుండా కొన్ని నిమిషాలు కొనసాగవచ్చు. ఏదీ విఫలమవ్వలేదు. Model diskలోకి download అయి memoryలో load అయ్యే వరకు chat prompt కనిపించదు. అందువల్ల మీకు ఏమీ చూపించకముందే run అనేక gigabyteల dataను download చేస్తుంది.

ఈ ప్రక్రియ కనిపించకుండా ఉండటానికి రెండు కారణాలు ఉన్నాయి. దాని output terminalకు వెళ్తున్నప్పుడు మాత్రమే Ollama progress barను చూపిస్తుంది. అందువల్ల shell script, cron job, CI step లేదా సాధారణ ssh host ollama run ... లోని run download జరుగుతున్నంతసేపు ఏమీ print చేయదు. Data diskలోకి వచ్చిన తర్వాత కూడా, మొదటి token కనిపించే ముందు fileను disk నుంచి RAMలోకి read చేయాలి. చిన్న VPSలో ఈ read ప్రక్రియ నెమ్మదిగా ఉంటుంది. Modelకు అవసరమైన memory boxలో లేకపోతే kernel swapping ప్రారంభిస్తుంది. అప్పుడు వేచి ఉండాల్సిన సమయం మరింత పెరుగుతుంది.

ఊహించకుండా, రెండో session నుంచి దీన్ని పర్యవేక్షించండి:

df -h /
watch -n5 df -h /

Free space దశలవారీగా తగ్గుతుంటే download ఇంకా కొనసాగుతోంది. Command ఇంకా busyగా ఉన్నప్పటికీ free space తగ్గడం ఆగిపోతే download పూర్తయి, memoryలోకి load చేయడం ప్రారంభమైందని అర్థం.

అందుకే ముందుగానే pull చేయాలి. ollama run టైప్ చేసే వ్యక్తి download కోసం వేచి ఉండాల్సిన అవసరం ఉండకూడదు.

ఎవరైనా అడగకముందే model ను pull చేయండి

కొత్త box లో, server ను install చేసే అదే script ను pull చేయండి:

curl -fsSL https://ollama.com/install.sh | sh
ollama pull gemma4

మీరు server ను మొదటిసారి సిద్ధం చేస్తుంటే, VPSలో Ollama ను install చేసే పూర్తి విధానం service గురించి, దాన్ని ఎవరు చేరుకోగలరో వివరిస్తుంది. ఆ తర్వాత ఏర్పాటు చేయాల్సిన ముఖ్యమైన విషయం, మీ terminal కంటే ఎక్కువ కాలం కొనసాగగల pull. ఎందుకంటే download మధ్యలో ఆగిపోతే model store సగం మాత్రమే నిండిపోయే అవకాశం ఉంటుంది.

దీన్ని tmux లో అమలు చేయండి. లేదా boot సమయంలో ఒకసారి మాత్రమే అమలయ్యే unit గా systemd కు అప్పగించండి. /etc/systemd/system/ollama-pull.service ను రాయండి:

[Unit]
Description=Pre-pull Ollama models
Wants=ollama.service network-online.target
After=ollama.service network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c 'until ollama list >/dev/null 2>&1; do sleep 2; done'
ExecStart=/bin/sh -c 'ollama pull gemma4'

[Install]
WantedBy=multi-user.target

రెండు commands కూడా ఉద్దేశపూర్వకంగా /bin/sh -c ద్వారా అమలవుతాయి. సాధారణ ExecStart= కు absolute path అవసరం. Installer binary ని ఎల్లప్పుడూ ఒకే directory లో ఉంచదు. అందువల్ల మీ box లోని command -v ollama మాత్రమే నమ్మదగిన సమాధానం. Shell ద్వారా అమలు చేయడం వల్ల guide నుండి copy చేసిన path బదులుగా service PATH ఉపయోగించబడుతుంది. మొదటి ExecStart కూడా ముఖ్యమే. After=ollama.service అంటే server unit ప్రారంభమైందని మాత్రమే అర్థం; server సిద్ధంగా ఉందని కాదు. అందువల్ల pull ప్రారంభమయ్యే ముందు loop ollama list సమాధానం ఇచ్చే వరకు వేచి ఉంటుంది.

sudo systemctl daemon-reload
sudo systemctl enable --now ollama-pull.service
journalctl -u ollama-pull.service

Journal లో pull ఎలాంటి error లేకుండా పూర్తయినట్లు కనిపించాలి. ఆ తర్వాత ollama list model ను చూపించాలి. మారుతూ ఉండే tag ను తాజాగా ఉంచడానికి, అదే pull ను అమలు చేసే systemd timer లేదా వారానికి ఒకసారి నడిచే cron entry జోడించండి. మారిన tag ను మళ్లీ pull చేస్తే కొత్త layers download అవుతాయి. పాత layers ను ఏదీ సూచించకపోతే, server తదుపరిసారి ప్రారంభమైనప్పుడు అవి శుభ్రం చేయబడతాయి.

Pull అంతరాయం కలిగినప్పుడు ఏమి జరుగుతుంది

మోడల్‌లోని ప్రతి layer దాని స్వంత content hash కింద నిల్వ చేయబడుతుంది. అందువల్ల మధ్యలో ఆగిపోయిన pull వృథా కాదు: అదే ollama pull ను మళ్లీ అమలు చేస్తే, ఇప్పటికే పూర్తైన layers గుర్తించబడి దాటవేయబడతాయి. కాబట్టి download మధ్యలో ఆగిపోయిన layer నుంచే కొనసాగుతుంది.

ఒక చర్య మాత్రమే ఆ పురోగతిని తొలగిస్తుంది. Ollama server ప్రారంభమైనప్పుడు, ఏ model manifest కూడా సూచించని stored layers ను అది తొలగిస్తుంది. ఆగిపోయిన pull వదిలిన partial layer సరిగ్గా అలాంటిదే. కాబట్టి retry చేయడానికి ముందు service ను restart చేస్తే, ఇప్పటికే download చేసిన భాగం తొలగిపోతుంది. ముందుగా pull ను retry చేసి, తరువాత restart చేయండి. Restart తర్వాత కూడా partial download తప్పనిసరిగా నిలిచి ఉండాలంటే, service environment లో OLLAMA_NOPRUNE=1 ను set చేయండి. తరువాత దాన్ని మళ్లీ తొలగించండి, ఎందుకంటే orphaned layers disk లో పేరుకుపోకుండా అడ్డుకునేది ఆ startup cleanup.

pull no space left on device తో ఆగిపోయి ఉంటే, retry చేయడానికి ముందు ఖాళీ స్థలాన్ని అందుబాటులోకి తేవాలి. df disk నిండిందని చూపించినా, model directory పై du దానికి సరిపడా వినియోగాన్ని చూపించకపోతే, స్థలం మరెక్కడో వినియోగించబడింది. ఏదైనా తొలగించే ముందు df మరియు du ఎందుకు భిన్నంగా చూపిస్తాయో కారణాలు చదవడం ఉపయోగకరం.

VPSలో Ollama models ఎక్కడ నిల్వ చేస్తుంది?

ఈ guideలోని pathను నమ్మకుండా, మీ స్వంత boxను అడగండి. Package install మరియు container మధ్య location మారుతుంది. ఎవరైనా OLLAMA_MODELS సెట్ చేసి ఉంటే location మళ్లీ మారుతుంది.

systemctl cat ollama.service
getent passwd ollama
sudo find / -xdev -type d -name blobs 2>/dev/null

systemctl cat unit fileను ప్రతి drop-inతో సహా చూపిస్తుంది. అందువల్ల మీరు సెట్ చేసిన లేదా మీ imageలో ముందుగానే చేర్చిన OLLAMA_MODELS line అక్కడ కనిపిస్తుంది. అలాంటి line లేకపోతే, service ఏ accountగా నడుస్తుందో ఆ account home directory కింద store ఉంటుంది. getent passwd ఆ home directoryని colonతో వేరు చేసిన ఆరవ fieldలో చూపిస్తుంది. find ఒక filesystemలో blobs directory కోసం వెతుకుతుంది. Layers వాస్తవంగా అక్కడే రాయబడతాయి. Models వేరే mountలో ఇప్పటికే ఉండే అవకాశం ఉంటే -xdev తొలగించండి.

ఇప్పుడు పరిమాణాన్ని కొలిచి, మీ స్వంత సంఖ్యలను పరిశీలించండి:

ollama list
df -h /
sudo du -sh /the/directory/you/found
sudo du -h -d1 /the/directory/you/found

Storeలో రెండు భాగాలు ఉంటాయి. manifestsలో ప్రతి model tagకు ఒక చిన్న file ఉంటుంది. ఆ tag ఏ layersతో నిర్మించబడిందో ఆ fileలో ఉంటుంది. blobsలో layers ఉంటాయి. ప్రతి layerకు దాని contents hash ఆధారంగా పేరు ఉంటుంది. మొత్తం పరిమాణంలో దాదాపు అంతా అక్కడే ఉంటుంది. Layers tags మధ్య share అవుతాయి. ఒకే weights ఆధారంగా నిర్మించిన రెండు models, ollama listలో తమ తమ పరిమాణాన్ని చూపిస్తాయి. కానీ diskలో ఆ స్థలం ఒక్కసారి మాత్రమే వినియోగించబడుతుంది. అందువల్ల చూపించిన పరిమాణాల మొత్తం, directory కోసం du చూపించే పరిమాణం కంటే ఎక్కువగా ఉండవచ్చు.

మీరు install చేసే ఇతర వాటికన్నా model files చిన్న VPS root filesystemను వేగంగా నింపుతాయి. వాటి పరిమాణంపై ఎక్కువ ప్రభావం చూపేది weight format. ప్రతి modelకు gigabytes ఆదా చేయాలంటే q4, q8 మరియు fp16 మధ్య ఎంపిక ఉపయోగకరంగా ఉంటుంది.

OLLAMA_MODELS తో models ను data volume కు తరలించడం

రెండవ disk లేదా పెద్ద data volume ఉంటే, root filesystem నిండకముందే model store ను తరలించండి. ముందుగా server ను ఆపండి. లేకపోతే ఇంకా రాస్తున్న file ను copy చేసే అవకాశం ఉంటుంది.

sudo systemctl stop ollama
sudo mkdir -p /mnt/data/ollama-models
sudo rsync -a /the/directory/you/found/ /mnt/data/ollama-models/
sudo chown -R ollama:ollama /mnt/data/ollama-models
sudo systemctl edit ollama.service

systemctl edit drop-in file ను editor లో తెరుస్తుంది. అందువల్ల packaged unit మారదు. Package upgrade మీ మార్పును overwrite చేయదు. ఈ రెండు lines ను జోడించండి:

[Service]
Environment="OLLAMA_MODELS=/mnt/data/ollama-models"
sudo systemctl daemon-reload
sudo systemctl restart ollama
systemctl show ollama --property=Environment
ollama list

systemctl show మీ కొత్త path ను చూపాలి. ollama list move కు ముందు చూపిన models నే చూపాలి. List ఖాళీగా ఉంటే server కొత్త directory ను read చేయలేకపోతోంది. Service, ollama user గా నడుస్తుంది. కాబట్టి ఆ user కు destination పై read మరియు write access ఉండాలి. పై chown line ఈ access ను అందిస్తుంది. కొత్త path ను సూచించే permission errors కోసం journalctl -e -u ollama ను పరిశీలించండి. List సరైనదని నిర్ధారించిన తర్వాత మాత్రమే పాత copy ను delete చేయండి. Move విఫలమైన తర్వాత source ను delete చేస్తే అన్ని files ను మళ్లీ download చేయాల్సి వస్తుంది.

మరో విధానం original path ను అలాగే ఉంచి, దానిపై data volume ను mount చేస్తుంది:

echo '/mnt/data/ollama-models /the/directory/you/found none bind 0 0' | sudo tee -a /etc/fstab
sudo mount -a
findmnt /the/directory/you/found
df -h /

findmnt mount ను print చేస్తే bind సక్రియంగా ఉందని అర్థం. Box లోని మరొక భాగం ఇప్పటికే default location ను ఆశిస్తున్నప్పుడు bind mount ఉపయోగపడుతుంది. అయితే ఇందులో ఒక సమస్య ఉంది: మీరు బయటకు copy చేసిన files mount point కింద root disk పై అలాగే ఉంటాయి. Mount వాటిని దాచుతుంది. అందువల్ల unmount చేసి ఆ files ను remove చేసే వరకు disk space తిరిగి అందుబాటులోకి రాదు. తరువాత login అయ్యే వ్యక్తికి వివరించడానికి environment variable విధానం ఈ రెండింటిలో సులభమైనది.

కంటైనర్ వాటిని వేరే చోట ఉంచుతుంది

Official image models ను మీరు mount చేసిన ప్రదేశంలోనే నిల్వ చేస్తుంది. ఏ ollama user కు చెందిన host directory లోనూ వాటిని నిల్వ చేయదు. Documentation లోని run command ఇది:

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

Colon కు ముందు ఉన్న ollama named Docker volume. /root/.ollama అనేది container లో server వ్రాసే ప్రదేశం. అందువల్ల మునుపటి section లోని paths పై du అమలు చేసినా ఏమీ కనబడదు. ఎందుకంటే models అక్కడ లేవు. నిజమైన location మరియు size ను చూపించండి:

docker volume inspect ollama
docker system df -v
docker exec -it ollama ollama list

docker volume inspect నుంచి Mountpoint field ను చదవండి. తరువాత దానిపై sudo du -sh అమలు చేయండి. Models ను data volume లో ఉంచాలంటే named volume స్థానంలో host directory (-v /mnt/data/ollama:/root/.ollama) ఉపయోగించి container ను మళ్లీ సృష్టించండి. Container root గా వ్రాస్తుంది. అందువల్ల ఆ host directory యాజమాన్యం root కు చెందుతుంది. Rootless Podman లో ids మీ user యొక్క subuid range కు map అవుతాయి. కాబట్టి host పై ownership మళ్లీ వేరుగా కనిపిస్తుంది: ఆ mapping గురించి rootless Podman కింద Ollama ను నడపడం చూడండి.

Cleanup గురించి ఒక హెచ్చరిక. ఏ container కూడా refer చేయని ప్రతి volume ను docker volume prune తొలగిస్తుంది. Volume లేకుండా ollama container ను తొలగించినా లేదా మళ్లీ సృష్టించినా, తరువాత prune చేయడం ద్వారా మీరు download చేసిన ప్రతి model తొలగిపోతుంది. వాటిని మళ్లీ download చేయడం తప్ప తిరిగి పొందే మార్గం ఉండదు. Models ఉన్న box పై prune అమలు చేయడానికి ముందు VPS లో Docker disk usage ను prune చేయడం ఎలా చదవండి.

ollama rm తో model ను తొలగించండి, rm తో కాదు

ollama list
ollama rm gemma4
ollama list
df -h /

ollama rm ఆ tag కోసం manifest ను తొలగిస్తుంది. ఆ తర్వాత మిగిలిన ఏ manifest కూడా సూచించని layers ను తొలగిస్తుంది. ఈ files unlink అయిన వెంటనే disk space తిరిగి అందుబాటులోకి వస్తుంది. అందువల్ల df వెంటనే మారుతుంది. Layers భాగస్వామ్యంగా ఉపయోగించబడతాయి కాబట్టి, దగ్గరగా సంబంధం ఉన్న రెండు tags లో ఒకదాన్ని తొలగించినప్పుడు, దాని పక్కన ollama list చూపించిన పరిమాణం కంటే చాలా తక్కువ space మాత్రమే ఖాళీ కావచ్చు. ఇది సరైన ప్రవర్తనే. Delete విఫలమైందని అర్థం కాదు.

Files ను చేతితో తొలగిస్తే ఈ జతలో అసంగతత ఏర్పడుతుంది. rm తో blob ను తొలగించినా manifest లో అది ఇంకా నమోదు అయి ఉంటుంది. అందువల్ల ollama list model ను చూపిస్తూనే ఉంటుంది. Missing layer ను చదివేటప్పుడు దాన్ని ఉపయోగించే ప్రతి ప్రయత్నం విఫలమవుతుంది. Manifest ను చేతితో తొలగిస్తే, దాన్ని సూచించే ఏదీ లేకపోయినా దాని layers disk పై అలాగే ఉంటాయి. అవి space ను ఆక్రమిస్తాయి. వాటిని ఏ Ollama command కూడా మీకు చూపించదు. మీరు ఇప్పటికే ఇలా చేసి ఉంటే, tag పై ollama rm అమలు చేస్తే మిగిలిన entry తొలగించబడుతుంది. ఏదీ సూచించని layers ను server restart చేయడం ద్వారా తొలగించవచ్చు.

చివరగా, ఈ రెండింటిని తరచుగా కలిపి అర్థం చేసుకుంటారు. ollama rm disk కు సంబంధించినది. ollama stop gemma4 model ను memory నుంచి unload చేస్తుంది, కానీ disk space ఏదీ ఖాళీ చేయదు. Download పూర్తయిన తర్వాత model RAM లో ఎంతకాలం resident గా ఉండాలో నిర్ణయించడం వేరే setting. ప్రతి request సమయంలో మళ్లీ load చేయకుండా model ను loaded గా ఉంచడం అనే అంశం దాన్ని వివరిస్తుంది.

FAQ

ollama pull మరియు ollama run మధ్య తేడా ఏమిటి?

ollama pull ఒక model ను disk కు download చేసి ముగుస్తుంది. ollama run ఆ model ఇప్పటికే disk లో ఉందో తనిఖీ చేస్తుంది. లేకపోతే download చేసి, memory లో load చేసి, interactive chat session ను ప్రారంభిస్తుంది. రెండూ ఒకే directory లో ఒకే files ను రాస్తాయి. Provisioning మరియు scripts లో pull ను ఉపయోగించండి. Keyboard వద్ద వ్యక్తి ఉన్నప్పుడు run ను ఉపయోగించండి. ollama run <model> "your prompt" ఒక prompt ను పంపి ముగుస్తుంది. ఇది run యొక్క scriptable రూపం.

నా మొదటి ollama run నిలిచిపోయినట్లు ఎందుకు కనిపిస్తుంది?

ఇది download జరుగుతున్నందువల్ల. Model disk లో ఉండి memory లో load అయ్యే వరకు chat prompt కనిపించదు. ఒక model పరిమాణం several gigabytes ఉండవచ్చు. Output ఒక terminal అయినప్పుడు మాత్రమే Ollama progress bar ను చూపిస్తుంది. అందువల్ల script, cron job లేదా ssh host ollama run ... లో నడుస్తున్న run పని చేస్తున్నంతసేపు ఏమీ చూపించదు. రెండో session తెరిచి watch -n5 df -h / ను run చేయండి. Free space దశలవారీగా తగ్గుతుంటే download కొనసాగుతోందని అర్థం. Model ను ముందుగానే pull చేస్తే ఈ వేచి ఉండే సమయం ఉండదు.

Ollama తన models ను ఎక్కడ నిల్వ చేస్తుంది?

స్థానం install విధానంపై ఆధారపడి ఉంటుంది. కాబట్టి ఊహించకుండా దాన్ని print చేయండి. Unit లేదా drop-in లో OLLAMA_MODELS సెట్ అయిందో లేదో చూడటానికి systemctl cat ollama.service ను run చేయండి. అది సెట్ కాకపోతే, service ఏ account తో run అవుతుందో ఆ account యొక్క home directory కింద store ఉంటుంది. దాన్ని getent passwd ollama print చేస్తుంది. Layer directory ను నేరుగా sudo find / -xdev -type d -name blobs 2>/dev/null గుర్తిస్తుంది. Container image కోసం store mounted volume లో ఉంటుంది. దాని host Mountpoint ను docker volume inspect ollama print చేస్తుంది.

Ollama models ను మరో disk కు ఎలా తరలించాలి?

Service ను stop చేయండి. rsync -a తో store ను కొత్త స్థానానికి copy చేయండి. sudo chown -R ollama:ollama <directory> తో directory ను service account కు అప్పగించండి. తరువాత sudo systemctl edit ollama.service ను run చేసి, [Service] line కింద Environment="OLLAMA_MODELS=<directory>" ను జోడించండి. sudo systemctl daemon-reload తో reload చేసి restart చేయండి. systemctl show ollama --property=Environment మరియు ollama list తో నిర్ధారించండి. ఖాళీ list కనిపిస్తే సాధారణంగా ollama user కొత్త directory ను read చేయలేకపోతున్నారని అర్థం. Path ను journalctl -e -u ollama చూపిస్తుంది.

Model files ను తొలగిస్తే disk space ఖాళీ అవుతుందా?

Files ను చేతితో తొలగిస్తే bytes ఖాళీ అవుతాయి. కానీ store inconsistent గా మిగులుతుంది. ఒక blob ను తొలగించినా manifest లో ఆ model నమోదు అయి ఉంటుంది. అందువల్ల అది ollama list లో కనిపిస్తూనే ఉంటుంది, అలాగే ఉపయోగించినప్పుడు విఫలమవుతుంది. Manifest ను తొలగిస్తే దాని layers disk పై మిగులుతాయి. వాటిని సూచించే ఏదీ ఉండదు. ollama rm <model> ను ఉపయోగించండి. ఇది ముందుగా manifest ను తొలగించి, తరువాత మరే model కు అవసరం లేని layers ను తొలగిస్తుంది. Files ను ఇప్పటికే చేతితో తొలగించి ఉంటే, entry ను clear చేయడానికి ఆ tag పై ollama rm ను run చేయండి. తరువాత server ను restart చేయండి. ఏ manifest సూచించని layers ను ఇది తొలగిస్తుంది.